[PATCH 11/20] KVM: arm64: Add a range to pKVM ownership selftest

Vincent Donnefort vdonnefort at google.com
Thu Sep 10 03:04:03 PDT 2026


On Tue, Sep 08, 2026 at 11:25:36AM +0100, Vincent Donnefort wrote:
> On Mon, Sep 07, 2026 at 03:58:13PM +0100, Wei-Lin Chang wrote:
> > On Mon, Aug 03, 2026 at 11:08:55AM +0100, Vincent Donnefort wrote:
> > 
> > [...]
> > 
> > >  void __init pkvm_ownership_selftest(void)
> > >  {
> > >  	unsigned long pgtable_order = 5;
> > >  	unsigned long pgtable = 0;
> > > -	unsigned long page = 0;
> > > -	long ret = -ENOMEM;
> > >  
> > >  	/* Memory for the VM page-table */
> > >  	pgtable = __get_free_pages(GFP_KERNEL, pgtable_order);
> > >  	if (!pgtable)
> > > -		goto out;
> > > +		return;
> > 
> > nit: previously this allocation failure will print a message, but not
> > after the change. Is this the intention?
> > 
> > Thanks,
> > Wei-Lin Chang
> 
> Nah, that's a good point, it should print something.
> 
> -- 
> Vincent

Ha I remember now... GFP_KERNEL doesn't have __GFP_NOWARN. So if it fails,
warn_alloc() will already print an error.

-- 
Vincent

> 
> > 
> > >  
> > > -	/* Page whose ownership will be tested */
> > > -	page = __get_free_page(GFP_KERNEL);
> > > -	if (!page)
> > > -		goto out;
> > > -
> > > -	ret = kvm_call_hyp_nvhe(__pkvm_ownership_selftest, virt_to_pfn((void *)page),
> > > -				virt_to_pfn((void *)pgtable), 1 << pgtable_order);
> > > -out:
> > > -	if (ret)
> > > -		kvm_err("Failed to run %s (%ld)\n", __func__, ret);
> > > +	__pkvm_ownership_selftest(0, pgtable, pgtable_order);
> > > +	__pkvm_ownership_selftest(PMD_ORDER, pgtable, pgtable_order);
> > >  
> > >  	free_pages(pgtable, pgtable_order);
> > > -	free_page(page);
> > >  }
> > >  #endif
> > >  
> > > -- 
> > > 2.55.0.508.g3f0d502094-goog
> > > 



More information about the linux-arm-kernel mailing list