From 414dbbaf56c7dd3fc6a90ff94730bcd672e00c6e Mon Sep 17 00:00:00 2001 From: Eric van Gyzen Date: Thu, 14 Jan 2016 01:34:41 +0000 Subject: [PATCH] numactl: fix CPU affinity when modifying an existing process or thread numactl was only modifying its own CPU affinity, which is fine when creating a new process, but not very helpful when modifying an existing processes. Reviewed by: adrian Sponsored by: Dell Inc. Differential Revision: https://reviews.freebsd.org/D4927 --- usr.bin/numactl/numactl.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/usr.bin/numactl/numactl.c b/usr.bin/numactl/numactl.c index ce1dfaecabc7..8ad0d0076c72 100644 --- a/usr.bin/numactl/numactl.c +++ b/usr.bin/numactl/numactl.c @@ -133,7 +133,7 @@ usage(void) } static int -set_numa_domain_cpuaffinity(int cpu_domain) +set_numa_domain_cpuaffinity(int cpu_domain, cpuwhich_t which, id_t id) { cpuset_t set; int error; @@ -142,8 +142,8 @@ set_numa_domain_cpuaffinity(int cpu_domain) cpu_domain, sizeof(set), &set); if (error != 0) err(1, "cpuset_getaffinity"); - error = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, - sizeof(set), &set); + error = cpuset_setaffinity(CPU_LEVEL_WHICH, which, id, sizeof(set), + &set); if (error != 0) err(1, "cpuset_setaffinity"); @@ -228,7 +228,8 @@ main(int argc, char *argv[]) /* If a CPU domain policy was given, include that too */ if (cpu_domain != -1) - (void) set_numa_domain_cpuaffinity(cpu_domain); + (void) set_numa_domain_cpuaffinity(cpu_domain, + CPU_WHICH_PID, -1); errno = 0; execvp(*argv, argv); @@ -278,7 +279,7 @@ main(int argc, char *argv[]) /* If a CPU domain policy was given, include that too */ if (cpu_domain != -1) - (void) set_numa_domain_cpuaffinity(cpu_domain); + (void) set_numa_domain_cpuaffinity(cpu_domain, which, id); exit(0); }