[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86/shadow: Delete the none.c dummy file


  • To: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • From: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
  • Date: Mon, 9 Feb 2026 16:35:04 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=citrix.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=98474JdQkV6HVWnwOuDmjpttYAaOW/uXN/Vxd1s/O5g=; b=vFg91qXN+KCbXjOp/DEeLRPf+KjhzoKPB6PXefGMU61QnfwqggUZpYAElVJWorRSbzZraDhp1yxqicBpQUuo5ZENGtbBC86hUh+EB8dpdJpt1Kq2xLBaOfRV+XF0PFAjyk7O+HSZj46AVbRm7BMZBo+E7kEFBVKIporIaB0I7NhgzlVa0giERJVrWSGAKotGElF0BvN/fV8HFY8DJaaNUA+KIkvjy8lgw2pAqgUTQ9ACU1gqwopyGFD2mPA7S1dt7wreohqQOVyAmYhfKzkfCqPdE5iHdUlHNCE8z6J6E4gmfuX+5AyizaeUcBndYUvunqrx6vr9xkR6Okoxi/ssAA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f/Q14n78t+YsiK4DcB85dSUvRYoqSQgyZ6CYQs5PdLcSe1Ia+grMp+2iaxegQXoiLuanE1H+nAf0QI6YtaJ6r8SD42mT1aM0sAPo18HgEUcUU1Rg5eZz9XCLswoQ37Ou4R3a1YT9D8aqWSobJAC77Ql7Xz+bruyWGiztrnt4reyQyM0eve6nzMQyQXvhov9UuYulAgnXsTCEFA2N0xC5siO4uPLpeUXIsq6/2bqLTQcd4E8uUdumPENr8ibKm9nzLyUUlxqyhM7FYpB9q+cxY5ikrAdpndxsjuKlDNUJuz2hG2F18lXK1Pbdc7Z1+57241u9EQAgFihbG3Vk8eQDKQ==
  • Cc: <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>
  • Delivery-date: Mon, 09 Feb 2026 15:35:32 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Mon Feb 9, 2026 at 3:42 PM CET, Roger Pau Monné wrote:
> On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
>> It only has 2 callers, both of which can be conditionally removed.
>> 
>> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
>> ---
>> I'd be ok conditionalising the else branch on...
>> 
>>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
>> 
>> logdirty patch: 
>> https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@xxxxxxx
>> 
>> ... to avoid the danger of stale pointers, with required changes elsewhere so
>> none.c is only compiled out in that case.
>> 
>> I'm not sure how much it matters seeing how they are all unreachable.
>> ---
>>  xen/arch/x86/mm/Makefile        |  2 +-
>>  xen/arch/x86/mm/paging.c        |  4 +-
>>  xen/arch/x86/mm/shadow/Makefile |  4 --
>>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
>>  4 files changed, 3 insertions(+), 84 deletions(-)
>>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
>> 
>> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
>> index 960f6e8409..066c4caff3 100644
>> --- a/xen/arch/x86/mm/Makefile
>> +++ b/xen/arch/x86/mm/Makefile
>> @@ -1,4 +1,4 @@
>> -obj-y += shadow/
>> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
>>  obj-$(CONFIG_HVM) += hap/
>>  
>>  obj-$(CONFIG_ALTP2M) += altp2m.o
>> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
>> index 2396f81ad5..5f70254cec 100644
>> --- a/xen/arch/x86/mm/paging.c
>> +++ b/xen/arch/x86/mm/paging.c
>> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>>       */
>>      if ( hap_enabled(d) )
>>          hap_domain_init(d);
>> -    else
>> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>>          rc = shadow_domain_init(d);
>
> If you want to go this route you will need to set rc = -EOPNOTSUPP;
> prior to the `if ... else if` on the HVM case.

Maybe this instead

    else
        rc = IS_ENABLED(PV) ? shadow_domain_init(d) : -EOPNOTSUPP;

And gate none.c on PV && !SHADOW_PAGING, which seems to be the only use.

It's a lot easier to see the safety on the HVM-only case, particularly with...

> is compiled out, and the toolstack has not specified the HAP flag at
> domain creation you will end up with a domain that doesn't have the
> paging operations initialized as paging_domain_init() would return 0
> with neither HAP nor shadow having been setup.  That's likely to
> trigger NULL pointer dereferences inside of Xen.
>
> Also, seeing the code in arch_sanitise_domain_config() we possibly
> want to return an error at that point if toolstack attempts to create
> an HVM guest without HAP enabled, and shadow is build time disabled.
> I've sent a patch to that end.

... this patch you meantion. Thanks.

I'm guessing it's still a hot potato in for non-shadow PV, which strongly hints
at our being better off leaving it in that case. On HVM-only configurations it
seems rather silly.

Cheers,
Alejandro



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.