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;
_______________________________________________
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