[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [v7 PATCH 03/10] xen: derive NUMA node affinity from hard and soft CPU affinity

On 06/10/2014 01:44 AM, Dario Faggioli wrote:
if a domain's NUMA node-affinity (which is what controls
memory allocations) is provided by the user/toolstack, it
just is not touched. However, if the user does not say
anything, leaving it all to Xen, let's compute it in the
following way:

  1. cpupool's cpus & hard-affinity & soft-affinity
  2. if (1) is empty: cpupool's cpus & hard-affinity

This guarantees memory to be allocated from the narrowest
possible set of NUMA nodes, ad makes it relatively easy to
set up NUMA-aware scheduling on top of soft affinity.

Note that such 'narrowest set' is guaranteed to be non-empty.

Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
Chenges from v6:
  * fixed a bug when a domain was being created inside a

This definitely should have erased the Reviewed-by, as it implies I reviewed the bug fix.

  * coding style.

Changes from v3:
  * avoid pointless calls to cpumask_clear(), as requested
    during review;
  * ASSERT() non emptyness of cpupool & hard affinity, as
    suggested during review.

Changes from v2:
  * the loop computing the mask is now only executed when
    it really is useful, as suggested during review;
  * the loop, and all the cpumask handling is optimized,
    in a way similar to what was suggested during review.
  xen/common/domain.c   |   61 +++++++++++++++++++++++++++++++------------------
  xen/common/schedule.c |    4 ++-
  2 files changed, 42 insertions(+), 23 deletions(-)

diff --git a/xen/common/domain.c b/xen/common/domain.c
index e20d3bf..c3a576e 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -409,17 +409,17 @@ struct domain *domain_create(
void domain_update_node_affinity(struct domain *d)
-    cpumask_var_t cpumask;
-    cpumask_var_t online_affinity;
+    cpumask_var_t dom_cpumask, dom_cpumask_soft;
+    cpumask_t *dom_affinity;

Also, just curious, did you rename these variables since the last series?

Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.