From 15ca990229ce24feaf44695facdb716d73c68980 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 18 Oct 2013 14:43:34 +0200 Subject: [PATCH] numa: Replace NUMA_MAX_N_CPUS macro with virNumaGetMaxCPUs() --- src/nodeinfo.c | 9 ++------- src/util/virnuma.c | 24 +++++++++++++++++++++++- src/util/virnuma.h | 2 ++ 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/nodeinfo.c b/src/nodeinfo.c index 6e8593b4c4..1482036a33 100644 --- a/src/nodeinfo.c +++ b/src/nodeinfo.c @@ -1535,11 +1535,6 @@ nodeGetFreeMemoryFake(void) } #if WITH_NUMACTL -# if LIBNUMA_API_VERSION <= 1 -# define NUMA_MAX_N_CPUS 4096 -# else -# define NUMA_MAX_N_CPUS (numa_all_cpus_ptr->size) -# endif # define n_bits(var) (8 * sizeof(var)) # define MASK_CPU_ISSET(mask, cpu) \ @@ -1559,7 +1554,7 @@ virNodeGetSiblingsList(const char *dir, int cpu_id) if (virFileReadAll(path, SYSFS_THREAD_SIBLINGS_LIST_LENGTH_MAX, &buf) < 0) goto cleanup; - if (virBitmapParse(buf, 0, &ret, NUMA_MAX_N_CPUS) < 0) + if (virBitmapParse(buf, 0, &ret, virNumaGetMaxCPUs()) < 0) goto cleanup; cleanup: @@ -1602,7 +1597,7 @@ nodeCapsInitNUMA(virCapsPtr caps) unsigned long long memory; virCapsHostNUMACellCPUPtr cpus = NULL; int ret = -1; - int max_n_cpus = NUMA_MAX_N_CPUS; + int max_n_cpus = virNumaGetMaxCPUs(); int mask_n_bytes = max_n_cpus / 8; int ncpus = 0; bool topology_failed = false; diff --git a/src/util/virnuma.c b/src/util/virnuma.c index 15a18e9f55..0530d64f58 100644 --- a/src/util/virnuma.c +++ b/src/util/virnuma.c @@ -21,10 +21,18 @@ #include +#define NUMA_MAX_N_CPUS 4096 + #if WITH_NUMACTL # define NUMA_VERSION1_COMPATIBILITY 1 # include -#endif + +# if LIBNUMA_API_VERSION > 1 +# undef NUMA_MAX_N_CPUS +# define NUMA_MAX_N_CPUS (numa_all_cpus_ptr->size) +# endif + +#endif /* WITH_NUMACTL */ #include "virnuma.h" #include "vircommand.h" @@ -288,3 +296,17 @@ virNumaGetNodeMemory(int node ATTRIBUTE_UNUSED, return -1; } #endif + + +/** + * virNumaGetMaxCPUs: + * + * Get the maximum count of CPUs supportable in the host. + * + * Returns the count of CPUs supported. + */ +unsigned int +virNumaGetMaxCPUs(void) +{ + return NUMA_MAX_N_CPUS; +} diff --git a/src/util/virnuma.h b/src/util/virnuma.h index 7640d1bfed..62b2c0ad9c 100644 --- a/src/util/virnuma.h +++ b/src/util/virnuma.h @@ -62,4 +62,6 @@ int virNumaGetNodeMemory(int node, unsigned long long *memsize, unsigned long long *memfree); +unsigned int virNumaGetMaxCPUs(void); + #endif /* __VIR_NUMA_H__ */ -- GitLab