Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jan 2016 01:34:41 +0000 (UTC)
From:      Eric van Gyzen <vangyzen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r293864 - head/usr.bin/numactl
Message-ID:  <201601140134.u0E1YfPI086971@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601140134.u0E1YfPI086971>