From owner-svn-src-head@FreeBSD.ORG Sat Jun 5 22:59:37 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80453106567C; Sat, 5 Jun 2010 22:59:37 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6EFFD8FC1F; Sat, 5 Jun 2010 22:59:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o55MxbEZ063395; Sat, 5 Jun 2010 22:59:37 GMT (envelope-from rwatson@svn.freebsd.org) Received: (from rwatson@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o55MxbwQ063389; Sat, 5 Jun 2010 22:59:37 GMT (envelope-from rwatson@svn.freebsd.org) Message-Id: <201006052259.o55MxbwQ063389@svn.freebsd.org> From: Robert Watson Date: Sat, 5 Jun 2010 22:59:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208859 - head/tools/tools/netrate/tcpp X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jun 2010 22:59:37 -0000 Author: rwatson Date: Sat Jun 5 22:59:37 2010 New Revision: 208859 URL: http://svn.freebsd.org/changeset/base/208859 Log: Although we currently don't compile in CPU-pinning support by default, add a -P to enable it if it were. MFC after: 1 week Sponsored by: Juniper Networks Modified: head/tools/tools/netrate/tcpp/README head/tools/tools/netrate/tcpp/tcpp.c head/tools/tools/netrate/tcpp/tcpp.h head/tools/tools/netrate/tcpp/tcpp_client.c head/tools/tools/netrate/tcpp/tcpp_server.c Modified: head/tools/tools/netrate/tcpp/README ============================================================================== --- head/tools/tools/netrate/tcpp/README Sat Jun 5 22:57:53 2010 (r208858) +++ head/tools/tools/netrate/tcpp/README Sat Jun 5 22:59:37 2010 (r208859) @@ -39,6 +39,7 @@ The client has more to configure, with t -c Select client mode, and specific dest IP -C Print connections/second instead of GBps + -P Pin each worker to a CPU -M Number of sequential local IPs to use; req. -l -T Include CPU use summary in stats at end of run -b Data bytes per connection Modified: head/tools/tools/netrate/tcpp/tcpp.c ============================================================================== --- head/tools/tools/netrate/tcpp/tcpp.c Sat Jun 5 22:57:53 2010 (r208858) +++ head/tools/tools/netrate/tcpp/tcpp.c Sat Jun 5 22:59:37 2010 (r208859) @@ -51,7 +51,7 @@ struct sockaddr_in remoteip; /* Base target address. */ struct sockaddr_in localipbase; /* Base local address, if -l. */ -int cflag, lflag, mflag, pflag, sflag, tflag, Cflag, Mflag, Tflag; +int cflag, lflag, mflag, pflag, sflag, tflag, Cflag, Mflag, Pflag, Tflag; uint64_t bflag; u_short rflag; @@ -61,24 +61,27 @@ usage(void) fprintf(stderr, "client: tcpp" " -c remoteIP" - " [-CT]" + " [-CPT]" " [-M localIPcount]" " [-l localIPbase]" + "\n\t" " [-b bytespertcp]" " [-m maxtcpsatonce]" - "\n" - "\t" " [-p procs]" " [-t tcpsperproc]" + "\n" + "\t" " [-r baseport]" "\n"); fprintf(stderr, "server: tcpp" " -s" - " [-T]" + " [-PT]" " [-l localIPbase]" " [-m maxtcpsatonce]" " [-p procs]" + "\n" + "\t" " [-r baseport]" "\n"); exit(EX_USAGE); @@ -109,7 +112,7 @@ main(int argc, char *argv[]) rflag = BASEPORT_DEFAULT; tflag = TCPS_DEFAULT; Mflag = 1; - while ((ch = getopt(argc, argv, "b:c:l:m:p:r:st:CM:T")) != -1) { + while ((ch = getopt(argc, argv, "b:c:l:m:p:r:st:CM:PT")) != -1) { switch (ch) { case 'b': ll = strtoll(optarg, &dummy, 10); @@ -173,6 +176,14 @@ main(int argc, char *argv[]) Mflag = ll; break; + case 'P': +#if defined(CPU_SETSIZE) && 0 + Pflag++; + break; +#else + errx(EX_USAGE, "-P current unsupported"); +#endif + case 'T': Tflag++; break; Modified: head/tools/tools/netrate/tcpp/tcpp.h ============================================================================== --- head/tools/tools/netrate/tcpp/tcpp.h Sat Jun 5 22:57:53 2010 (r208858) +++ head/tools/tools/netrate/tcpp/tcpp.h Sat Jun 5 22:59:37 2010 (r208859) @@ -31,7 +31,7 @@ extern struct sockaddr_in localipbase, remoteip; extern int cflag, lflag, mflag, pflag, sflag, tflag; -extern int Cflag, Iflag, Mflag, Tflag; +extern int Cflag, Iflag, Mflag, Pflag, Tflag; extern uint64_t bflag; extern u_short rflag; Modified: head/tools/tools/netrate/tcpp/tcpp_client.c ============================================================================== --- head/tools/tools/netrate/tcpp/tcpp_client.c Sat Jun 5 22:57:53 2010 (r208858) +++ head/tools/tools/netrate/tcpp/tcpp_client.c Sat Jun 5 22:59:37 2010 (r208859) @@ -224,17 +224,19 @@ tcpp_client_worker(int workernum) int ncpus; size_t len; - len = sizeof(ncpus); - if (sysctlbyname(SYSCTLNAME_CPUS, &ncpus, &len, NULL, 0) < 0) - err(-1, "sysctlbyname: %s", SYSCTLNAME_CPUS); - if (len != sizeof(ncpus)) - errx(-1, "sysctlbyname: %s: len %jd", SYSCTLNAME_CPUS, - (intmax_t)len); - - CPU_ZERO(&mask); - CPU_SET(workernum % ncpus, &mask); - if (sched_setaffinity(0, CPU_SETSIZE, &mask) < 0) - err(-1, "sched_setaffinity"); + if (Pflag) { + len = sizeof(ncpus); + if (sysctlbyname(SYSCTLNAME_CPUS, &ncpus, &len, NULL, 0) < 0) + err(-1, "sysctlbyname: %s", SYSCTLNAME_CPUS); + if (len != sizeof(ncpus)) + errx(-1, "sysctlbyname: %s: len %jd", SYSCTLNAME_CPUS, + (intmax_t)len); + + CPU_ZERO(&mask); + CPU_SET(workernum % ncpus, &mask); + if (sched_setaffinity(0, CPU_SETSIZE, &mask) < 0) + err(-1, "sched_setaffinity"); + } #endif setproctitle("tcpp_client %d", workernum); Modified: head/tools/tools/netrate/tcpp/tcpp_server.c ============================================================================== --- head/tools/tools/netrate/tcpp/tcpp_server.c Sat Jun 5 22:57:53 2010 (r208858) +++ head/tools/tools/netrate/tcpp/tcpp_server.c Sat Jun 5 22:59:37 2010 (r208859) @@ -201,17 +201,19 @@ tcpp_server_worker(int workernum) int ncpus; ssize_t len; - len = sizeof(ncpus); - if (sysctlbyname(SYSCTLNAME_CPUS, &ncpus, &len, NULL, 0) < 0) - err(-1, "sysctlbyname: %s", SYSCTLNAME_CPUS); - if (len != sizeof(ncpus)) - errx(-1, "sysctlbyname: %s: len %jd", SYSCTLNAME_CPUS, - (intmax_t)len); - - CPU_ZERO(&mask); - CPU_SET(workernum % ncpus, &mask); - if (sched_setaffinity(0, CPU_SETSIZE, &mask) < 0) - err(-1, "sched_setaffinity"); + if (Pflag) { + len = sizeof(ncpus); + if (sysctlbyname(SYSCTLNAME_CPUS, &ncpus, &len, NULL, 0) < 0) + err(-1, "sysctlbyname: %s", SYSCTLNAME_CPUS); + if (len != sizeof(ncpus)) + errx(-1, "sysctlbyname: %s: len %jd", SYSCTLNAME_CPUS, + (intmax_t)len); + + CPU_ZERO(&mask); + CPU_SET(workernum % ncpus, &mask); + if (sched_setaffinity(0, CPU_SETSIZE, &mask) < 0) + err(-1, "sched_setaffinity"); + } #endif setproctitle("tcpp_server %d", workernum);