Support for the modern CPU_ALLOC macros was added 10 years ago in commit a73cd93b2428adbbc62bb919b6cf5ffd27728040 Author: Daniel P. Berrange <berrange@xxxxxxxxxx> Date: Mon Nov 16 16:08:29 2009 +0000 Alternate CPU affinity impl to cope with NR_CPUS > 1024 This is long enough that we can assume it always exists and drop the back compat code. Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx> --- src/util/virprocess.c | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/src/util/virprocess.c b/src/util/virprocess.c index f2533f639f..66834d37d3 100644 --- a/src/util/virprocess.c +++ b/src/util/virprocess.c @@ -422,8 +422,6 @@ int virProcessSetAffinity(pid_t pid, virBitmapPtr map) { size_t i; VIR_DEBUG("Set process affinity on %lld", (long long)pid); -# ifdef CPU_ALLOC - /* New method dynamically allocates cpu mask, allowing unlimted cpus */ int numcpus = 1024; size_t masklen; cpu_set_t *mask; @@ -462,22 +460,6 @@ int virProcessSetAffinity(pid_t pid, virBitmapPtr map) return -1; } CPU_FREE(mask); -# else - /* Legacy method uses a fixed size cpu mask, only allows up to 1024 cpus */ - cpu_set_t mask; - - CPU_ZERO(&mask); - for (i = 0; i < virBitmapSize(map); i++) { - if (virBitmapIsBitSet(map, i)) - CPU_SET(i, &mask); - } - - if (sched_setaffinity(pid, sizeof(mask), &mask) < 0) { - virReportSystemError(errno, - _("cannot set CPU affinity on process %d"), pid); - return -1; - } -# endif return 0; } @@ -491,7 +473,6 @@ virProcessGetAffinity(pid_t pid) size_t ncpus; virBitmapPtr ret = NULL; -# ifdef CPU_ALLOC /* 262144 cpus ought to be enough for anyone */ ncpus = 1024 << 8; masklen = CPU_ALLOC_SIZE(ncpus); @@ -503,14 +484,6 @@ virProcessGetAffinity(pid_t pid) } CPU_ZERO_S(masklen, mask); -# else - ncpus = 1024; - if (VIR_ALLOC(mask) < 0) - return NULL; - - masklen = sizeof(*mask); - CPU_ZERO(mask); -# endif if (sched_getaffinity(pid, masklen, mask) < 0) { virReportSystemError(errno, @@ -522,22 +495,13 @@ virProcessGetAffinity(pid_t pid) goto cleanup; for (i = 0; i < ncpus; i++) { -# ifdef CPU_ALLOC /* coverity[overrun-local] */ if (CPU_ISSET_S(i, masklen, mask)) ignore_value(virBitmapSetBit(ret, i)); -# else - if (CPU_ISSET(i, mask)) - ignore_value(virBitmapSetBit(ret, i)); -# endif } cleanup: -# ifdef CPU_ALLOC CPU_FREE(mask); -# else - VIR_FREE(mask); -# endif return ret; } -- 2.21.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list