[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: about fixup_page_fault

At 09:04 +0000 on 17 Dec (1229504644), Keir Fraser wrote:
> A Xen fault shouldn't cause a lookup in guest tables for HVM guests.

Looks like it does, though. :(  The check in fixup_page_fault should
probably be more like:

if ( (paging_mode_external(d) && guest_mode(regs))
     || (paging_mode_enabled(d) && !paging_mode_external(d)) )

That is, unconditionally call paging_fault() for PV guests (who
shouldn't be allowed map the 0 page, right?), and call for HVM guests
only if the guest caused the fault. 

Potentially it can all be tidied up a bit by moving the other
HVM-specific call out of the if (IN_HYPERVISOR_RANGE) block at the top.
> I think the issue here is actually that shadow code places some mapping of
> its own at address 0. We've had this issue before, where it stops NULL
> dereferences from crashing...

Yep; that was different, in that there was no page fault at all. 
But of course Xen has no bugs so the code was like that for years
before anyone noticed. :)



Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Citrix Systems (R&D) Ltd.
[Company #02300071, SL9 0DZ, UK.]

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.