[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 07/11] xen/page_alloc: Set node affinity when claiming pages from an exact node
On Fri, Mar 14, 2025 at 05:24:58PM +0000, Alejandro Vallejo wrote: > Set the domain's node affinity to the claimed node if the claim > specified an exact node. Do it immediately before making any changes in > case setting the affinity fails (even though it shouldn't). > > This allows preferentially allocating from the closest NUMA node when > "exact" is not specified (e.g: p2m tables, etc). > > Signed-off-by: Alejandro Vallejo <alejandro.vallejo@xxxxxxxxx> > --- > Toolstacks can just do it themselves, but it's more error prone. If it > claimed pages from an exact node (and remember we can only hold a single > claim at a time) it makes no sense for the domain to be intentionally > allocating from NUMA nodes other than its home node. > --- > xen/common/page_alloc.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c > index cfaa64d3b858..e69a5fcc8d31 100644 > --- a/xen/common/page_alloc.c > +++ b/xen/common/page_alloc.c > @@ -586,10 +586,16 @@ int domain_set_outstanding_pages(struct domain *d, > nodeid_t node, > > if ( node != NUMA_NO_NODE ) > { > - avail_pages = pernode_avail_pages[node] - pernode_oc[node]; > + nodemask_t affinity = NODE_MASK_NONE; > > + avail_pages = pernode_avail_pages[node] - pernode_oc[node]; > if ( pages > avail_pages ) > goto out; > + > + node_set(node, affinity); > + ret = domain_set_node_affinity(d, &affinity); You can use nodemask_of_node(node) here? > + if ( ret ) > + goto out; This seems a bit too much, specially failing the claim if the affinity cannot be fulfilled. If would maybe print a message if the claim is made against a non-affine node, but that would be it. Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |