|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/7] x86/mm: Normalize X86 per-domain page counters to unsigned long
On 29.05.2026 14:43, Bernhard Kaindl wrote:
> Prepare x86 for >16 TiB domains by normalizing the per-domain page counts
> in paging_domain (total_pages, free_pages, p2m_pages) to unsigned long
> and widen page counts in related x86 allocation functions accordingly:
>
> - paging_domain.{total,free,p2m}_pages: unsigned int -> unsigned long
> - x86/mm/shadow/common.c:
> - unsigned long sh_min_allocation(d)
> - unsigned long shadow_min_acceptable_pages(d)
> - unsigned long shadow_get_allocation(d)
> - shadow_set_allocation(unsigned long pages)
> - shadow_enable(): fix narrowing from d->arch.paging.total_pages to
> unsigned int
> - x86/mm/hap/hap.c:
> - unsigned long hap_get_allocation(d)
> - hap_set_allocation(unsigned long pages)
> - hap_enable(): fix narrowing from d->arch.paging.total_pages to
> unsigned int
> - x86/mm/paging.c:
> - paging_set_allocation(unsigned long pages)
> - arch_set_paging_mempool_size() don't truncate pages
>
> Note: pages in _shadow_prealloc(), shadow_alloc(), shadow_free() and
> shadow_prealloc() is intentionally kept as unsigned int. It carries
> the per-shadow-entry page count from shadow_size() (uint8_t-backed,
> max 4), not the pool allocation count.
>
> Note: xen_domctl_shadow_op.mb stays uint32_t, and the domctl ABI remains
> MB-based and caps at 4 PiB, replacing the 16 TiB per-domain limit.
> Casts widen the mb-to-pages arithmetic to unsigned long where needed.
>
> Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
I don't think I suggested this, and yet more than for parts of the earlier
patch I wonder if this isn't going too far, at least right now. Certainly
a 32 TiB guest (i.e. one having 64G pages assigned) isn't going to need a
P2M pool of more than 4G pages. As per code you alter in patch 1 and here,
the internal ratio is rather 256, i.e. the widening would be needed when
we meant to have guests of about 256 TiB size.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |