|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 2/8] pdx: provide a unified set of unit functions
On Fri, Aug 08, 2025 at 06:21:29PM +0100, Julien Grall wrote:
> Hi Roger,
>
> On 05/08/2025 10:52, Roger Pau Monne wrote:
> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> > index a77b31071ed8..ba35bf1fe3bb 100644
> > --- a/xen/arch/arm/setup.c
> > +++ b/xen/arch/arm/setup.c
> > @@ -256,9 +256,11 @@ void __init init_pdx(void)
> > {
> > const struct membanks *mem = bootinfo_get_mem();
> > paddr_t bank_start, bank_size, bank_end, ram_end = 0;
> > - int bank;
> > + unsigned int bank;
> > #ifndef CONFIG_PDX_NONE
> > + for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> > + pfn_pdx_add_region(mem->bank[bank].start, mem->bank[bank].size);
> > /*
> > * Arm does not have any restrictions on the bits to compress. Pass 0
> > to
> > * let the common code further restrict the mask.
> > @@ -266,26 +268,24 @@ void __init init_pdx(void)
> > * If the logic changes in pfn_pdx_hole_setup we might have to
> > * update this function too.
> > */
> > - uint64_t mask = pdx_init_mask(0x0);
> > -
> > - for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> > - {
> > - bank_start = mem->bank[bank].start;
> > - bank_size = mem->bank[bank].size;
> > -
> > - mask |= bank_start | pdx_region_mask(bank_start, bank_size);
> > - }
> > + pfn_pdx_compression_setup(0);
> > for ( bank = 0 ; bank < mem->nr_banks; bank++ )
> > {
> > - bank_start = mem->bank[bank].start;
> > - bank_size = mem->bank[bank].size;
> > -
> > - if (~mask & pdx_region_mask(bank_start, bank_size))
> > - mask = 0;
> > + if ( !pdx_is_region_compressible(
> > + mem->bank[bank].start,
> > + PFN_UP(mem->bank[bank].start + mem->bank[bank].size) -
> > + PFN_DOWN(mem->bank[bank].start)) )
>
> This code is a bit too verbose. Can we at least introduce "bank =
> &mem->bank[bank]" to reduce a bit the verbosity?
I cannot introduce a `bank` local variable as it's already used as the
index cursor for the loop. Would you be fine with:
for ( bank = 0 ; bank < mem->nr_banks; bank++ )
{
const struct membank *m = &mem->bank[bank];
if ( !pdx_is_region_compressible(m->start,
PFN_UP(m->start + m->size) -
PFN_DOWN(m->start)) )
{
pfn_pdx_compression_reset();
printk(XENLOG_WARNING
"PFN compression disabled, RAM region [%#" PRIpaddr ", %#"
PRIpaddr "] not covered\n",
m->start, m->start + m->size - 1);
break;
}
}
> The rest of the logic looks fine. So:
>
> Acked-by: Julien Grall <jgrall@xxxxxxxxxx> # ARM
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |