Re: [PATCH v2 04/13] xen/page_alloc: Coerce min(flsl(), foo) expressions to being unsigned
On 29/05/2024 8:07 pm, Andrew Cooper wrote: > On 27/05/2024 7:26 am, Jan Beulich wrote: >> On 24.05.2024 22:03, Andrew Cooper wrote: >>> This is in order to maintain bisectability through the subsequent changes, >>> where flsl() changes sign-ness non-atomically by architecture. >>> >>> Signed-off-by: Andrew Cooper >> Reviewed-by: Jan Beulich >> >> > Actually, by coercing the min() in pvh_populate_memory_range() from > patch 9 in this patch, the bisection-complexity of this series drops > massively, and in particular I can merge patch 3 into 10. > > As you've given R-by on both, I'm going to go ahead and do this in order > to make some headway on the series, given the deadlines, and that the > RISC-V series is still pending this one. Actually not quite. It's even more simple. This patch stays the same, and the coercion gets added as find_first_set_bit() turns into ffsl(). ~Andrew
Re: [PATCH v2 04/13] xen/page_alloc: Coerce min(flsl(), foo) expressions to being unsigned
On 27/05/2024 7:26 am, Jan Beulich wrote: > On 24.05.2024 22:03, Andrew Cooper wrote: >> This is in order to maintain bisectability through the subsequent changes, >> where flsl() changes sign-ness non-atomically by architecture. >> >> Signed-off-by: Andrew Cooper > Reviewed-by: Jan Beulich > > Actually, by coercing the min() in pvh_populate_memory_range() from patch 9 in this patch, the bisection-complexity of this series drops massively, and in particular I can merge patch 3 into 10. As you've given R-by on both, I'm going to go ahead and do this in order to make some headway on the series, given the deadlines, and that the RISC-V series is still pending this one. ~Andrew
Re: [PATCH v2 04/13] xen/page_alloc: Coerce min(flsl(), foo) expressions to being unsigned
On 24.05.2024 22:03, Andrew Cooper wrote: > This is in order to maintain bisectability through the subsequent changes, > where flsl() changes sign-ness non-atomically by architecture. > > Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich
[PATCH v2 04/13] xen/page_alloc: Coerce min(flsl(), foo) expressions to being unsigned
This is in order to maintain bisectability through the subsequent changes, where flsl() changes sign-ness non-atomically by architecture. Signed-off-by: Andrew Cooper --- CC: Jan Beulich CC: Roger Pau Monné CC: Wei Liu CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk CC: Bertrand Marquis CC: Michal Orzel CC: Oleksii Kurochko CC: Shawn Anastasio CC: consult...@bugseng.com CC: Simone Ballarin CC: Federico Serafini CC: Nicola Vetrini v2: * New --- xen/common/page_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 7c1bdfc046bf..8d3342e95236 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -1842,7 +1842,7 @@ static void _init_heap_pages(const struct page_info *pg, * Note that the value of ffsl() and flsl() starts from 1 so we need * to decrement it by 1. */ -unsigned int inc_order = min(MAX_ORDER, flsl(e - s) - 1); +unsigned int inc_order = min(MAX_ORDER + 0U, flsl(e - s) - 1U); if ( s ) inc_order = min(inc_order, ffsl(s) - 1U); @@ -2266,7 +2266,7 @@ void __init xenheap_max_mfn(unsigned long mfn) ASSERT(!first_node_initialised); ASSERT(!xenheap_bits); BUILD_BUG_ON((PADDR_BITS - PAGE_SHIFT) >= BITS_PER_LONG); -xenheap_bits = min(flsl(mfn + 1) - 1 + PAGE_SHIFT, PADDR_BITS); +xenheap_bits = min(flsl(mfn + 1) - 1U + PAGE_SHIFT, PADDR_BITS + 0U); printk(XENLOG_INFO "Xen heap: %u bits\n", xenheap_bits); } -- 2.30.2