On 16.08.2025 13:19, Bernhard Kaindl wrote:
> Xen supports claiming an amount of memory ahead of allocating it to
> ensure that the memory for the domain is available for allocation.
>
> On NUMA hosts, the same assurance is needed on a per-NUMA-node basis
> to ensure optimal placement of domain memory on the correct NUMA node:
>
> Add per-NUMA-node claims and add a new Hypercall to claim memory for
> a domain using XEN_DOMCTL_claim_memory and xc_domain_claim_memory().
>
> As we will implement multi-node claims as well, we updated the design
> to be flexible for multi-node claims, so that a 2nd series can build
> upon it without changing the hypercall API.
>
> Bernhard Kaindl (6):
> xen/page_alloc: Simplify domain_adjust_tot_pages for future changes
> xen: New API to claim memory for a domain using XEN_DOMCTL_claim_memory
>
> Alejandro Vallejo (1):
> xen/page_alloc: Remove `claim` from domain_set_outstanding_pages()
>
> Alejandro Vallejo and Bernhard Kaindl (5):
> xen/page_alloc: Add static per-NUMA-node counts of free pages
> xen: Add node argument to
> domain_{adjust_tot_pages,set_outstanding_pages}()
> xen/page_alloc.c: Create per-node outstanding claims
> xen/page_alloc: Check per-node claims in alloc_heap_pages()
>
> tools/flask/policy/modules/dom0.te | 1 +
> tools/flask/policy/modules/xen.if | 1 +
> tools/include/xenctrl.h | 4 +
> tools/libs/ctrl/xc_domain.c | 42 ++++++++
> tools/ocaml/libs/xc/xenctrl.ml | 9 ++
> tools/ocaml/libs/xc/xenctrl.mli | 9 ++
> tools/ocaml/libs/xc/xenctrl_stubs.c | 21 ++++
> xen/arch/x86/mm.c | 3 +-
> xen/arch/x86/mm/mem_sharing.c | 4 +-
> xen/common/domain.c | 32 +++++-
> xen/common/domctl.c | 8 ++
> xen/common/grant_table.c | 4 +-
> xen/common/memory.c | 6 +-
> xen/common/page_alloc.c | 154 ++++++++++++++++++++++------
> xen/include/public/domctl.h | 17 +++
> xen/include/xen/domain.h | 2 +
> xen/include/xen/mm.h | 6 +-
> xen/include/xen/sched.h | 1 +
> xen/xsm/flask/hooks.c | 3 +
> xen/xsm/flask/policy/access_vectors | 2 +
> 20 files changed, 285 insertions(+), 44 deletions(-)
Having looked at only patch 1 so far, it already becomes clear that revision
information is lacking here. This is more important than usual for this series
because (a) a patch with a pretty similar title as patch 1 here has was
submitted by (and meanwhile committed for) Alejandro and (b) you picked up
earlier work by him. In fact I first thought you lost his S-o-b on patch 1.
That would have been easily clarified by indicating in the patch that it is
new in v2.
Jan