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

[PATCH v4 1/2] xen/x86: move domain_clamp_alloc_bitsize() into pv32 code


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Grygorii Strashko <grygorii_strashko@xxxxxxxx>
  • Date: Tue, 16 Dec 2025 23:13:49 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • 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=5BlxZECDzWfohIPtyTZ/CTYOZ+Y5NmlN2gmO5GHeIxk=; b=weSI7B+NxZ50uX57r/fwbGIKw7hJA+V/VL8mD3n2AGdPKj3C+mli8iFnAueruYz5bt55jrtAgVFEJL/VpT+HEv5CPQ2QFw6JWXz0MNWQcDkYf7ppwZisSF0TGwQK2B09LzpC9XsDP+lmXNSLAfvRCrs/bUJ/012znl8vfUmdslp47lrj5aRFK8xsgpWDkSpvj1aqMW8qXQjJhsDYyLDqtnRpOsqmj82iocVryDPR+PgbD1g48+4BOwpAxK3CDzXkH6Hu7tyi+buHjDQwbK9tEcliUqAs/9FzGmRCCLaKTLt1QK5RsLiInXGTkUQsF+QkhAt/sLQi6LR0sVQaXuDfCw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=noLKrtQBL6HZRfVTMoL9ouaTxFaDgnkJQy3BWU1rrwdIt/E1qW+P9IB1tD215EzCL1dt44iHv9QvqVRITExYdfQsmvqyUSwF6kPp40NAsqwtjBm5zex0+2bbPI1SsTgvZOqkDLVKBWsn4GULL6ESWbSFsPPJrtXSAey8YFqdOBexUwPVhUk/TpB92Plqs/vMxkXvlf/3bZ2giqV9WRoZSyo4rgStjgwzvRpZdBHZGYVO1DIw4WOQueDwDRP1+GCBKkGAnQ834dUf5HENTaeOVN7tNxeB+1gvN5mmtAkntQoUw7h4S2jvJSWOUDb3PuqEH3GvRTeS8k1s6jxQNFFuZQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: Grygorii Strashko <grygorii_strashko@xxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Delivery-date: Tue, 16 Dec 2025 23:14:13 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHcbuGjnZjr1e5ps0GOglHkyj482w==
  • Thread-topic: [PATCH v4 1/2] xen/x86: move domain_clamp_alloc_bitsize() into pv32 code

From: Grygorii Strashko <grygorii_strashko@xxxxxxxx>

The d->arch.physaddr_bitsize field is used only by PV32 code so as the
domain_clamp_alloc_bitsize() function.

Hence move domain_clamp_alloc_bitsize() function into PV32 code and convert
it to macro.

Signed-off-by: Grygorii Strashko <grygorii_strashko@xxxxxxxx>
---
changes in v4:
 - rebase
 - split out moving d->arch.physaddr_bitsize in separate patch
 - fix comments for domain_clamp_alloc_bitsize() macro

 xen/arch/x86/include/asm/mm.h | 12 ++++++++++--
 xen/arch/x86/x86_64/mm.c      |  7 -------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 9438f5ea0119..89e8940c3316 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -619,8 +619,16 @@ void __iomem *ioremap_wc(paddr_t pa, size_t len);
 
 extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int 
pxm);
 
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits);
-#define domain_clamp_alloc_bitsize(d, bits) domain_clamp_alloc_bitsize(d, bits)
+#ifdef CONFIG_PV32
+#define domain_clamp_alloc_bitsize(d, bits) ({                                 
\
+    struct domain *_d = (d);                                                   
\
+                                                                               
\
+    ((_d &&                                                                    
\
+      _d->arch.physaddr_bitsize)                                               
\
+         ? min_t(unsigned int, _d->arch.physaddr_bitsize, bits)                
\
+         : bits);                                                              
\
+})
+#endif
 
 unsigned long domain_get_maximum_gpfn(struct domain *d);
 
diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
index 42fd4fe4e9b5..8eadab7933d0 100644
--- a/xen/arch/x86/x86_64/mm.c
+++ b/xen/arch/x86/x86_64/mm.c
@@ -1119,13 +1119,6 @@ unmap:
     return ret;
 }
 
-unsigned int domain_clamp_alloc_bitsize(struct domain *d, unsigned int bits)
-{
-    if ( (d == NULL) || (d->arch.physaddr_bitsize == 0) )
-        return bits;
-    return min(d->arch.physaddr_bitsize, bits);
-}
-
 static int transfer_pages_to_heap(struct mem_hotadd_info *info)
 {
     unsigned long i;
-- 
2.34.1



 


Rackspace

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