svn commit: r305312 - head/tools/tools/crypto

George V. Neville-Neil gnn at FreeBSD.org
Sat Sep 3 00:22:44 UTC 2016


Author: gnn
Date: Sat Sep  3 00:22:42 2016
New Revision: 305312
URL: https://svnweb.freebsd.org/changeset/base/305312

Log:
  Add cpuset support to separate forked processes.
  
  Reviewed by:	cem
  Sponsored by:	Rubicon Communications, LLC (Netgate)
  Differential Revision:	https://reviews.freebsd.org/D7766

Modified:
  head/tools/tools/crypto/cryptotest.c

Modified: head/tools/tools/crypto/cryptotest.c
==============================================================================
--- head/tools/tools/crypto/cryptotest.c	Fri Sep  2 22:47:57 2016	(r305311)
+++ head/tools/tools/crypto/cryptotest.c	Sat Sep  3 00:22:42 2016	(r305312)
@@ -97,6 +97,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sysexits.h>
 #include <unistd.h>
 
 #include <crypto/cryptodev.h>
@@ -468,6 +469,11 @@ runtests(struct alg *alg, int count, int
 	if (threads > 1) {
 		for (i = 0; i < threads; i++)
 			if (fork() == 0) {
+				cpuset_t mask;
+				CPU_ZERO(&mask);
+				CPU_SET(i, &mask);
+				cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID,
+				    -1, sizeof(mask), &mask);
 				runtest(alg, count, size, cmd, &tvp[i]);
 				exit(0);
 			}
@@ -573,6 +579,9 @@ main(int argc, char **argv)
 		}
 		argc--, argv++;
 	}
+	if (maxthreads > CPU_SETSIZE)
+		errx(EX_USAGE, "Too many threads, %d, choose fewer.", maxthreads);
+	
 	if (nsizes == 0) {
 		if (alg)
 			sizes[nsizes++] = alg->blocksize;


More information about the svn-src-head mailing list