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

Re: [Xen-devel] Fetching instructions after page-fault, near page boundary?

On 2 Jun 2006, at 18:07, Petersson, Mats wrote:

I wouldn't trust it. What if you have code running in paged
memory (e.g., random privileged userspace process)? Pages can
disappear under your feet. I think you need to remember how
many bytes you managed to read and do the job thoroughly.
It's not that much extra code.

But that means that we'd have to parse the instruction bytes in Xen
(since we can't read them as trivially in QEMU) and figure out how many
bytes the instruction is. Since both AMD and Intel have problems with
getting the correct number of bytes from the processor during a
page-fault intercept, it's no help that Intel SOMETIMES have a correct
number of bytes in a VMCS entry...

Read as many as you can, up to 15. Tell QEMU how many you actually managed to read.

How do we do it properly, if there's non-present page, re-inject the
page-fault, I guess?

Just try re-executing the instruction (i.e. directly return to the guest). If the page has become unmapped then the processor should handle the fault on instruction fetch.

 -- Keir

Xen-devel mailing list



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