Re: [PATCH RFCv2 9/9] arm64: Support async page fault
From: Gavin Shan
Date: Tue Jun 02 2020 - 01:45:01 EST
Hi Marc, Paolo,
On 6/1/20 7:21 PM, Paolo Bonzini wrote:
On 31/05/20 14:44, Marc Zyngier wrote:
Is there an ARM-approved way to reuse the S2 fault syndromes to detect
async page faults?
It would mean being able to set an ESR_EL2 register value into ESR_EL1,
and there is nothing in the architecture that would allow that,
I understand that this is not what you want to do and I'm not proposing
it, but I want to understand this better: _in practice_ do CPUs check
closely what is written in ESR_EL1?
In any case, the only way to implement this, it seems to me, would be a
completely paravirtualized exception vector that doesn't use ESR at all.
On the other hand, for the page ready (interrupt) side assigning a PPI
seems complicated but doable.
Marc suggested to use SDEI in another reply. I think it might be the
appropriate way to deliver page-not-present. To some extent, it could
be regarded as exception, which doesn't use ESR at all. It matches with
what Paolo is thinking of: paravirtualized exception vector that doesn't
use ESR at all. However, it seems it's not supported in kvm-arm yet. So
I assume it needs to be developed from scratch. Marc, could you please
help to confirm? Thanks in advance.
I agree with Paolo PPI (interrupt) might be the best way to deliver
page-ready currently. I don't think SDEI is suitable because there
are no big difference between SDEI and currently used DABT injection
to some extent. With SDEI, We will have the issues we are facing.
For example, some critical code section isn't safe to receive SDEI
if I'm correct.
Thanks,
Gavin
[...]