arch/arm64/kvm/hyp/nvhe/mem_protect.c | 73 +++++++++++++++------------ 1 file changed, 40 insertions(+), 33 deletions(-)
Hi all, Here are two patches to deal with a race between the handling of permission faults and MMU notifiers with pKVM that I found by inspection. Specifically, pKVM gets thoroughly confused when it doesn't find a page mapped in its relax_perm path, while standard KVM deals with that trivially thanks to the -EAGAIN special case in user_mem_abort(). The second patch addresses the problem by simplifying the implementation of multiple pKVM hypercalls, which also has the nice side effect of improving locking by not taking the global host stage-2 lock as much. Patches based on 6.14-rc1, tested in qemu on on Google Pixel 6. Thanks! Quentin Quentin Perret (2): KVM: arm64: Improve error handling from check_host_shared_guest() KVM: arm64: Simplify np-guest hypercalls arch/arm64/kvm/hyp/nvhe/mem_protect.c | 73 +++++++++++++++------------ 1 file changed, 40 insertions(+), 33 deletions(-) -- 2.48.1.502.g6dc24dfdaf-goog
On Fri, 07 Feb 2025 14:54:36 +0000, Quentin Perret wrote:
> Here are two patches to deal with a race between the handling of
> permission faults and MMU notifiers with pKVM that I found by
> inspection. Specifically, pKVM gets thoroughly confused when it doesn't
> find a page mapped in its relax_perm path, while standard KVM deals
> with that trivially thanks to the -EAGAIN special case in
> user_mem_abort(). The second patch addresses the problem by simplifying
> the implementation of multiple pKVM hypercalls, which also has the nice
> side effect of improving locking by not taking the global host stage-2
> lock as much.
>
> [...]
Applied to fixes, thanks!
[1/2] KVM: arm64: Improve error handling from check_host_shared_guest()
commit: c53fbdb60fb61fd6bda2bc0dc89837966625c5dc
[2/2] KVM: arm64: Simplify np-guest hypercalls
commit: eabc7aaef7a553b64bf6e631ce04526af6c8d104
Cheers,
M.
--
Without deviation from the norm, progress is not possible.
On Fri, Feb 07, 2025 at 02:54:36PM +0000, Quentin Perret wrote: > Hi all, > > Here are two patches to deal with a race between the handling of > permission faults and MMU notifiers with pKVM that I found by > inspection. Specifically, pKVM gets thoroughly confused when it doesn't > find a page mapped in its relax_perm path, while standard KVM deals > with that trivially thanks to the -EAGAIN special case in > user_mem_abort(). The second patch addresses the problem by simplifying > the implementation of multiple pKVM hypercalls, which also has the nice > side effect of improving locking by not taking the global host stage-2 > lock as much. > > Patches based on 6.14-rc1, tested in qemu on on Google Pixel 6. Looks reasonable to me, the locking improvements are certainly an added bonus. Reviewed-by: Oliver Upton <oliver.upton@linux.dev> -- Thanks, Oliver
© 2016 - 2026 Red Hat, Inc.