Re: [PATCH mm-unstable v1 3/5] kvm/arm64: add kvm_arch_test_clear_young()

From: Yu Zhao
Date: Thu Feb 16 2023 - 23:22:10 EST


On Thu, Feb 16, 2023 at 9:12 PM Yu Zhao <yuzhao@xxxxxxxxxx> wrote:
>
> This patch adds kvm_arch_test_clear_young() for the vast majority of
> VMs that are not pKVM and run on hardware that sets the accessed bit
> in KVM page tables.
>
> It relies on two techniques, RCU and cmpxchg, to safely test and clear
> the accessed bit without taking the MMU lock. The former protects KVM
> page tables from being freed while the latter clears the accessed bit
> atomically against both the hardware and other software page table
> walkers.
>
> Signed-off-by: Yu Zhao <yuzhao@xxxxxxxxxx>
> ---
> arch/arm64/include/asm/kvm_host.h | 7 +++
> arch/arm64/include/asm/kvm_pgtable.h | 8 +++
> arch/arm64/include/asm/stage2_pgtable.h | 43 ++++++++++++++
> arch/arm64/kvm/arm.c | 1 +
> arch/arm64/kvm/hyp/pgtable.c | 51 ++--------------
> arch/arm64/kvm/mmu.c | 77 ++++++++++++++++++++++++-
> 6 files changed, 141 insertions(+), 46 deletions(-)

Adding Marc and Will.

Can you please add other interested parties that I've missed?

Thanks.