Re: [PATCH RFCv2 9/9] arm64: Support async page fault

From: Gavin Shan
Date: Thu May 28 2020 - 19:03:14 EST


Hi Paolo,

On 5/28/20 8:48 PM, Paolo Bonzini wrote:
On 28/05/20 08:14, Gavin Shan wrote:
- for x86 we're also thinking of initiating the page fault from the
exception handler, rather than doing so from the hypervisor before
injecting the exception. If ARM leads the way here, we would do our
best to share code when x86 does the same.

Sorry, Paolo, I don't follow your idea here. Could you please provide
more details?

The idea is to inject stage2 page faults into the guest even before the
host starts populates the page. The guest then invokes a hypercall,
telling the host to populate the page table and inject the 'page ready'
event (interrupt) when it's done.

For x86 the advantage is that the processor can take care of raising the
stage2 page fault in the guest, so it's faster.

I think there might be too much overhead if the page can be populated
quickly by host. For example, it's fast to populate the pages if swapin
isn't involved.

If I'm correct enough, it seems arm64 doesn't have similar mechanism,
routing stage2 page fault to guest.

Thanks,
Gavin