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

From: Marc Zyngier
Date: Fri May 29 2020 - 05:41:49 EST


On 2020-05-29 00:02, Gavin Shan wrote:
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.

Indeed, this isn't a thing on arm64. Exception caused by a S2 fault are
always routed to EL2.

M.
--
Jazz is not dead. It just smells funny...