Re: [PATCH v3 2/3] KVM: arm64: Introduce KVM_PGTABLE_WALK_SKIP_LEVEL* walk flags
From: Leonardo Bras
Date: Tue Jul 14 2026 - 06:13:37 EST
On Tue, Jul 14, 2026 at 06:41:11AM +0100, Wei-Lin Chang wrote:
> On Mon, Jul 13, 2026 at 11:14:32AM +0100, Leonardo Bras wrote:
> > On Sat, Jul 11, 2026 at 06:53:28AM +0100, Wei-Lin Chang wrote:
> > > Hi Leonardo,
> >
> > Hi Wei-Lin, thanks for reviewing!
> >
> > >
> > > On Wed, Jul 08, 2026 at 02:40:58PM +0100, Leonardo Bras wrote:
> > > > Add the new walking flags that tell kvm_pgtable_walk() to skip lower levels
> > > > when walking the pagetables.
> > > >
> > > > Signed-off-by: Leonardo Bras <leo.bras@xxxxxxx>
> > > > ---
> > > > arch/arm64/include/asm/kvm_pgtable.h | 13 +++++++++++++
> > > > arch/arm64/kvm/hyp/pgtable.c | 19 ++++++++++++++++---
> > > > 2 files changed, 29 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/arch/arm64/include/asm/kvm_pgtable.h b/arch/arm64/include/asm/kvm_pgtable.h
> > > > index 41a8687938eb..20c7c12e0e76 100644
> > > > --- a/arch/arm64/include/asm/kvm_pgtable.h
> > > > +++ b/arch/arm64/include/asm/kvm_pgtable.h
> > > > @@ -311,31 +311,44 @@ typedef bool (*kvm_pgtable_force_pte_cb_t)(u64 addr, u64 end,
> > > > * @KVM_PGTABLE_WALK_SHARED: Indicates the page-tables may be shared
> > > > * with other software walkers.
> > > > * @KVM_PGTABLE_WALK_IGNORE_EAGAIN: Don't terminate the walk early if
> > > > * the walker returns -EAGAIN.
> > > > * @KVM_PGTABLE_WALK_SKIP_BBM_TLBI: Visit and update table entries
> > > > * without Break-before-make's
> > > > * TLB invalidation.
> > > > * @KVM_PGTABLE_WALK_SKIP_CMO: Visit and update table entries
> > > > * without Cache maintenance
> > > > * operations required.
> > > > + * @KVM_PGTABLE_WALK_SKIP_LEVEL0: Skip visiting level-0+ entries
> > > > + * @KVM_PGTABLE_WALK_SKIP_LEVEL1: Skip visiting level-1+ entries
> > > > + * @KVM_PGTABLE_WALK_SKIP_LEVEL2: Skip visiting level-2+ entries
> > > > + * @KVM_PGTABLE_WALK_SKIP_LEVEL3: Skip visiting level-3 entries
> > >
> > > Just a drive-by nit:
> > > Maybe avoid the level-$LEVEL terminology? Since as you said there is
> > > level -1 in the architecture, in that case you'd have to write
> > > "level--1" which is awkward :)
> >
> > It would have to be something like level-(-1), or we could call it level+1,
> > LOL.
>
> Good one! :)
>
> >
> > Seriously though, yes it's bad.
> > I could call it level_1 entries, but level_-1 also seems weird :(
> > level(1) & level(-1) could work, but looks like a function now
> >
> > maybe just saying 'level 1' and 'level -1' can be better.
>
> Yeah, I generally also just go with the space when it's text.
> For code/variables, I guess a direct concatenation like what's done here
> for the enum is good.
>
Sure, noted for next version
Thanks!
Leo