[PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro

Grygorii Strashko posted 3 patches 2 weeks, 1 day ago
[PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro
Posted by Grygorii Strashko 2 weeks, 1 day ago
From: Grygorii Strashko <grygorii_strashko@epam.com>

Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
defines.

Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
v3: no changes, added tag

 xen/arch/arm/include/asm/mm.h   | 2 --
 xen/arch/ppc/include/asm/mm.h   | 2 --
 xen/arch/riscv/include/asm/mm.h | 2 --
 xen/arch/x86/include/asm/mm.h   | 1 +
 xen/include/xen/mm.h            | 4 ++++
 5 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
index 4c6cc64aa7ba..ec2d2dc5372a 100644
--- a/xen/arch/arm/include/asm/mm.h
+++ b/xen/arch/arm/include/asm/mm.h
@@ -313,8 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
 
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 unsigned long domain_get_maximum_gpfn(struct domain *d);
 
 /* Release all __init and __initdata ranges to be reused */
diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
index e478291fdf55..91c405876bd0 100644
--- a/xen/arch/ppc/include/asm/mm.h
+++ b/xen/arch/ppc/include/asm/mm.h
@@ -96,8 +96,6 @@ static inline struct page_info *virt_to_page(const void *v)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void) (mfn); 0; })
 
-#define domain_clamp_alloc_bitsize(d, b) (b)
-
 #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
 
 struct page_info
diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
index 11e9f26bf0a5..e5ea91fa4d0c 100644
--- a/xen/arch/riscv/include/asm/mm.h
+++ b/xen/arch/riscv/include/asm/mm.h
@@ -292,8 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
 /* TODO: implement */
 #define mfn_valid(mfn) ({ (void)(mfn); 0; })
 
-#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
-
 #define PFN_ORDER(pg) ((pg)->v.free.order)
 
 extern unsigned char cpu0_boot_stack[];
diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
index 08153e6d6fa2..17ca6666a34e 100644
--- a/xen/arch/x86/include/asm/mm.h
+++ b/xen/arch/x86/include/asm/mm.h
@@ -621,6 +621,7 @@ extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
 
 void domain_set_alloc_bitsize(struct domain *d);
 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)
 
 unsigned long domain_get_maximum_gpfn(struct domain *d);
 
diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
index b968f47b87e0..426362adb2f4 100644
--- a/xen/include/xen/mm.h
+++ b/xen/include/xen/mm.h
@@ -641,4 +641,8 @@ static inline void put_page_alloc_ref(struct page_info *page)
     }
 }
 
+#ifndef domain_clamp_alloc_bitsize
+#define domain_clamp_alloc_bitsize(d, bits) ((void)(d), (bits))
+#endif
+
 #endif /* __XEN_MM_H__ */
-- 
2.34.1
Re: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro
Posted by Orzel, Michal 5 days, 17 hours ago

On 28/11/2025 16:22, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
> defines.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Michal Orzel <michal.orzel@amd.com>

~Michal
Re: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro
Posted by Oleksii Kurochko 5 days, 23 hours ago
On 11/28/25 4:22 PM, Grygorii Strashko wrote:
> From: Grygorii Strashko <grygorii_strashko@epam.com>
>
> Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
> defines.
>
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: no changes, added tag
>
>   xen/arch/arm/include/asm/mm.h   | 2 --
>   xen/arch/ppc/include/asm/mm.h   | 2 --
>   xen/arch/riscv/include/asm/mm.h | 2 --
>   xen/arch/x86/include/asm/mm.h   | 1 +
>   xen/include/xen/mm.h            | 4 ++++
>   5 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/xen/arch/arm/include/asm/mm.h b/xen/arch/arm/include/asm/mm.h
> index 4c6cc64aa7ba..ec2d2dc5372a 100644
> --- a/xen/arch/arm/include/asm/mm.h
> +++ b/xen/arch/arm/include/asm/mm.h
> @@ -313,8 +313,6 @@ struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
>   /* Arch-specific portion of memory_op hypercall. */
>   long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
>   
> -#define domain_clamp_alloc_bitsize(d, b) (b)
> -
>   unsigned long domain_get_maximum_gpfn(struct domain *d);
>   
>   /* Release all __init and __initdata ranges to be reused */
> diff --git a/xen/arch/ppc/include/asm/mm.h b/xen/arch/ppc/include/asm/mm.h
> index e478291fdf55..91c405876bd0 100644
> --- a/xen/arch/ppc/include/asm/mm.h
> +++ b/xen/arch/ppc/include/asm/mm.h
> @@ -96,8 +96,6 @@ static inline struct page_info *virt_to_page(const void *v)
>   /* TODO: implement */
>   #define mfn_valid(mfn) ({ (void) (mfn); 0; })
>   
> -#define domain_clamp_alloc_bitsize(d, b) (b)
> -
>   #define PFN_ORDER(pfn_) ((pfn_)->v.free.order)
>   
>   struct page_info
> diff --git a/xen/arch/riscv/include/asm/mm.h b/xen/arch/riscv/include/asm/mm.h
> index 11e9f26bf0a5..e5ea91fa4d0c 100644
> --- a/xen/arch/riscv/include/asm/mm.h
> +++ b/xen/arch/riscv/include/asm/mm.h
> @@ -292,8 +292,6 @@ static inline bool arch_mfns_in_directmap(unsigned long mfn, unsigned long nr)
>   /* TODO: implement */
>   #define mfn_valid(mfn) ({ (void)(mfn); 0; })
>   
> -#define domain_clamp_alloc_bitsize(d, b) ((void)(d), (b))
> -
>   #define PFN_ORDER(pg) ((pg)->v.free.order)
>   
>   extern unsigned char cpu0_boot_stack[];
> diff --git a/xen/arch/x86/include/asm/mm.h b/xen/arch/x86/include/asm/mm.h
> index 08153e6d6fa2..17ca6666a34e 100644
> --- a/xen/arch/x86/include/asm/mm.h
> +++ b/xen/arch/x86/include/asm/mm.h
> @@ -621,6 +621,7 @@ extern int memory_add(unsigned long spfn, unsigned long epfn, unsigned int pxm);
>   
>   void domain_set_alloc_bitsize(struct domain *d);
>   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)
>   
>   unsigned long domain_get_maximum_gpfn(struct domain *d);
>   
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index b968f47b87e0..426362adb2f4 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -641,4 +641,8 @@ static inline void put_page_alloc_ref(struct page_info *page)
>       }
>   }
>   
> +#ifndef domain_clamp_alloc_bitsize
> +#define domain_clamp_alloc_bitsize(d, bits) ((void)(d), (bits))
> +#endif
> +
>   #endif /* __XEN_MM_H__ */

LGTM:
  Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

Thanks.

~ Oleksii
Re: [PATCH v3 2/3] xen/mm: add generic domain_clamp_alloc_bitsize() macro
Posted by Luca Fancellu 2 weeks, 1 day ago
Hi Grygorii,

> On 28 Nov 2025, at 15:22, Grygorii Strashko <grygorii_strashko@epam.com> wrote:
> 
> From: Grygorii Strashko <grygorii_strashko@epam.com>
> 
> Add generic domain_clamp_alloc_bitsize() macro and clean up arch specific
> defines.
> 
> Signed-off-by: Grygorii Strashko <grygorii_strashko@epam.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>
> ---
> v3: no changes, added tag
> 
> xen/arch/arm/include/asm/mm.h   | 2 --

Looks ok to me:

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com> #arm

Cheers,
Luca