[vbox-dev] Possible bug in VB

Larry Finger Larry.Finger at lwfinger.net
Tue Apr 6 20:30:53 GMT 2010

In http://bugzilla.novell.com/show_bug.cgi?id=576681, a problem with
booting the openSUSE 11.3 Milestone kernels is discussed.

The analysis of the problem is as follows (from Jiri Bohac):

I can now reproduce the problem as well. After more debugging I see that
the machine is stuck in an endless loop of page faults.

The page fault is triggered by the memset at fec0000 and the page fault
is thought to be "spurious" (stale TLB entry) by the page fault handler,
so the kernel does nothing, the STOS instruction of memset is restarted
and the pagefault triggers again.

The reason code for the page fault is 3, that is a protection fault
during a write operation.

Looking at the PMD entry and PTE of the fec00000 page, the page is set
to be writeable, so I don't understand why this happens. The i386
specification says that the TLB should be flushed automatically after a
PF trap, and that is why the PF handler does nothing if it believes the
PF was "spurious".

So, this could either be a VB bug (because it is VB that emulates the
paging, traps, etc in the guest), or there is some other reason why a
page protection fault can happen besides the permission bits in the
PTE/PMD entry.

My question is as follows: Does the i386 emulation handle this case
correctly? If you are certain that it does, then the problem is with the
kernel. As it happens, the only reports of this failure are on VMs
running under VB.


More information about the vbox-dev mailing list