Author: vangyzen
Date: Thu Jan 14 01:34:41 2016
New Revision: 293864
URL: https://svnweb.freebsd.org/changeset/base/293864

Log:
  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

Modified:
  head/usr.bin/numactl/numactl.c

Modified: head/usr.bin/numactl/numactl.c
==============================================================================
--- head/usr.bin/numactl/numactl.c      Thu Jan 14 01:33:16 2016        
(r293863)
+++ head/usr.bin/numactl/numactl.c      Thu Jan 14 01:34:41 2016        
(r293864)
@@ -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_doma
            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);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to