On 17.05.2009, at 21:59, Avi Kivity <avi@xxxxxxxxxx> wrote:
Alexander Graf wrote:
If we couldn't find a page on read_emulated, it might be a good
idea to tell the guest about that and inject a #PF.
We do the same already for write faults. I don't know why it was
not implemented for reads.
I can't think why it was done for writes. Normally, a guest page
fault would be trapped and reflected a long time before emulation,
in FNAME(page_fault)(), after walk_addr().
Can you give some details on the situation? What instruction was
executed, and why kvm tried to emulate it?
I remember it was something about accessing the apic with npt. Maybe
the real problem was the restricted bit checking that made the
emulated instruction behave differently from the real mmu.
I really need to start writing down why I did things when doing them :).
I can recheck if it still breaks without the inject.
Alex
(I guess it depends on the relative priority of svm instruction
intercepts and the page fault intercept?)
--
Do not meddle in the internals of kernels, for they are subtle and
quick to panic.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html