Support for the modern CPU_ALLOC macros was added 10 years ago in
commit a73cd93b2428adbbc62bb919b6cf5ffd27728040
Author: Daniel P. Berrange <berrange(a)redhat.com>
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(a)redhat.com>
---
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