From owner-svn-src-user@FreeBSD.ORG Thu Aug 12 19:40:50 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D3471065672; Thu, 12 Aug 2010 19:40:50 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4315C8FC15; Thu, 12 Aug 2010 19:40:50 +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 o7CJeop4075419; Thu, 12 Aug 2010 19:40:50 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7CJeoWf075417; Thu, 12 Aug 2010 19:40:50 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201008121940.o7CJeoWf075417@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Thu, 12 Aug 2010 19:40:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r211233 - user/des/phybs X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Aug 2010 19:40:50 -0000 Author: des Date: Thu Aug 12 19:40:49 2010 New Revision: 211233 URL: http://svn.freebsd.org/changeset/base/211233 Log: Parametrize minsize and maxsize, and instead of a fixed count, write a fixed amount of data. Modified: user/des/phybs/phybs.c Modified: user/des/phybs/phybs.c ============================================================================== --- user/des/phybs/phybs.c Thu Aug 12 19:26:27 2010 (r211232) +++ user/des/phybs/phybs.c Thu Aug 12 19:40:49 2010 (r211233) @@ -31,16 +31,18 @@ #include #include +#include #include #include #include #include -#define BSIZE 512 -#define MINSIZE 1024 -#define MAXSIZE 8192 -#define STEP (MAXSIZE * 4) -#define COUNT 65536 +#define BSIZE 512 + +static unsigned int minsize = 1024; +static unsigned int maxsize = 8192; +#define STEP (maxsize * 4) +static unsigned int total = (128 * 1024 * 1024); static int opt_r = 0; static int opt_w = 1; @@ -95,13 +97,14 @@ static void usage(void) { - fprintf(stderr, "usage: phybs [-R | -r] [-W | -w] device\n"); + fprintf(stderr, "usage: phybs [-R | -r] [-W | -w] device [min [max]]\n"); exit(1); } int main(int argc, char *argv[]) { + int64_t tmp; char *device; int fd, opt; @@ -126,23 +129,34 @@ main(int argc, char *argv[]) argc -= optind; argv += optind; - if (argc != 1) - usage(); - if (!opt_r && !opt_w) opt_r = opt_w = 1; - + if (argc < 1 || argc > 3) + usage(); device = argv[0]; + if (argc > 1) { + if (expand_number(argv[1], &tmp) != 0 || + tmp < BSIZE || (tmp & (tmp - 1)) != 0) + usage(); + minsize = tmp; + } + if (argc > 2) { + if (expand_number(argv[2], &tmp) != 0 || + tmp < minsize || (tmp & (tmp - 1)) != 0) + usage(); + maxsize = tmp; + } + if ((fd = open(device, opt_w ? O_RDWR : O_RDONLY)) == -1) err(1, "open(%s)", device); printf("%8s%8s%8s%8s%12s%8s%8s\n", "count", "size", "offset", "step", "msec", "tps", "kBps"); - for (size_t size = MINSIZE; size <= MAXSIZE; size *= 2) { + for (size_t size = minsize; size <= maxsize; size *= 2) { printf("\n"); - scan(fd, size, 0, STEP, COUNT); + scan(fd, size, 0, STEP, total / size); for (off_t offset = BSIZE; offset <= (off_t)size; offset *= 2) - scan(fd, size, offset, STEP, COUNT); + scan(fd, size, offset, STEP, total / size); } close(fd); exit(0);