[PATCH v7 6/6] KVM: arm64: Expose guest stage-2 pagetable config to debugfs

Sebastian Ene sebastianene at google.com
Mon Jul 1 07:10:43 PDT 2024


On Fri, Jun 28, 2024 at 08:49:19PM +0000, Oliver Upton wrote:
> On Fri, Jun 21, 2024 at 12:32:30PM +0000, Sebastian Ene wrote:
> > Make the start level and the IPA bits properties available in the
> > virtual machine debugfs directory. Make sure that the KVM structure
> > doesn't disappear behind our back and keep a reference to the KVM struct
> > while these files are opened.
> > 
> > Signed-off-by: Sebastian Ene <sebastianene at google.com>
> > ---
> >  arch/arm64/kvm/ptdump.c | 50 +++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 50 insertions(+)
> > 
> > diff --git a/arch/arm64/kvm/ptdump.c b/arch/arm64/kvm/ptdump.c
> > index cc1d4fdddc6e..17649e3cbc8f 100644
> > --- a/arch/arm64/kvm/ptdump.c
> > +++ b/arch/arm64/kvm/ptdump.c
> > @@ -215,8 +215,58 @@ static const struct file_operations kvm_ptdump_guest_fops = {
> >  	.release	= kvm_ptdump_guest_close,
> >  };
> >  
> > +static int kvm_pgtable_debugfs_show(struct seq_file *m, void *unused)
> > +{
> > +	const struct file *file = m->file;
> > +	struct kvm_pgtable *pgtable = m->private;
> > +
> > +	if (!strcmp(file_dentry(file)->d_iname, "ipa_range"))
> > +		seq_printf(m, "%2u\n", pgtable->ia_bits);
> > +	else if (!strcmp(file_dentry(file)->d_iname, "stage2_levels"))
> > +		seq_printf(m, "%1d\n", pgtable->start_level);
> 
> The name of the file suggests sounds like this is the number of page
> table levels instead of the starting level of the walk.
> 
> So instead:
> 
> 		seq_printf(m, "%1d\n",
> 			   KVM_PGTABLE_LAST_LEVEL - pgtable->start_level + 1);
> 

Ack, I will rewrite this.

> > +	return 0;
> > +}
> > +
> > +static int kvm_pgtable_debugfs_open(struct inode *m, struct file *file)
> > +{
> > +	struct kvm *kvm = m->i_private;
> > +	struct kvm_s2_mmu *mmu;
> > +	struct kvm_pgtable *pgtable;
> > +	int ret;
> > +
> > +	if (!kvm_get_kvm_safe(kvm))
> > +		return -ENOENT;
> > +
> > +	mmu = &kvm->arch.mmu;
> > +	pgtable = mmu->pgt;
> 
> nitpick: pgtable = &kvm->arch.mmu.pgt
>

Will fix this.

Thanks,
Seb
> -- 
> Thanks,
> Oliver
> 
> To unsubscribe from this group and stop receiving emails from it, send an email to kernel-team+unsubscribe at android.com.
> 



More information about the linux-arm-kernel mailing list