diff --git a/usr.bin/rump_allserver/rump_allserver.1 b/usr.bin/rump_allserver/rump_allserver.1 index 0c1c8e04a762..02d595908dce 100644 --- a/usr.bin/rump_allserver/rump_allserver.1 +++ b/usr.bin/rump_allserver/rump_allserver.1 @@ -1,4 +1,4 @@ -.\" $NetBSD: rump_allserver.1,v 1.6 2010/12/15 18:42:59 pooka Exp $ +.\" $NetBSD: rump_allserver.1,v 1.7 2011/01/03 10:44:40 pooka Exp $ .\" .\" Copyright (c) 2010 Antti Kantee. All rights reserved. .\" @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 14, 2010 +.Dd January 3, 2011 .Dt RUMP_SERVER 1 .Os .Sh NAME @@ -33,6 +33,7 @@ .Sh SYNOPSIS .Nm .Op Fl s +.Op Fl c Ar ncpu .Op Fl d Ar drivespec .Op Fl l Ar library .Op Fl m Ar module @@ -60,6 +61,12 @@ system was built. At execution time it is possible to load components from the command line as described in the options section. .Bl -tag -width indent +.It Fl c Ar ncpu +Configure +.Ar ncpu +virtual CPUs on SMP-capable archs. +By default, the number of CPUs equals the number of CPUs on the +host. .It Fl d Ar drivespec The argument .Ar drivespec diff --git a/usr.bin/rump_allserver/rump_allserver.c b/usr.bin/rump_allserver/rump_allserver.c index 9fd21da8f49b..e70f1630851c 100644 --- a/usr.bin/rump_allserver/rump_allserver.c +++ b/usr.bin/rump_allserver/rump_allserver.c @@ -1,4 +1,4 @@ -/* $NetBSD: rump_allserver.c,v 1.11 2010/12/15 19:07:43 pooka Exp $ */ +/* $NetBSD: rump_allserver.c,v 1.12 2011/01/03 10:44:40 pooka Exp $ */ /*- * Copyright (c) 2010 Antti Kantee. All Rights Reserved. @@ -27,7 +27,7 @@ #include #ifndef lint -__RCSID("$NetBSD: rump_allserver.c,v 1.11 2010/12/15 19:07:43 pooka Exp $"); +__RCSID("$NetBSD: rump_allserver.c,v 1.12 2011/01/03 10:44:40 pooka Exp $"); #endif /* !lint */ #include @@ -51,8 +51,8 @@ static void usage(void) { - fprintf(stderr, "usage: %s [-s] [-d drivespec] [-l libs] [-m modules] " - "bindurl\n", getprogname()); + fprintf(stderr, "usage: %s [-s] [-c ncpu] [-d drivespec] [-l libs] " + "[-m modules] bindurl\n", getprogname()); exit(1); } @@ -101,12 +101,21 @@ main(int argc, char *argv[]) unsigned netfs = 0, curetfs = 0; int error; int ch, sflag; + int ncpu; setprogname(argv[0]); sflag = 0; - while ((ch = getopt(argc, argv, "d:l:m:s")) != -1) { + while ((ch = getopt(argc, argv, "c:d:l:m:s")) != -1) { switch (ch) { + case 'c': + ncpu = atoi(optarg); + /* XXX: MAXCPUS is from host, not from kernel */ + if (ncpu < 1 || ncpu > MAXCPUS) + err(1, "CPU count needs to be between " + "1 and %d\n", MAXCPUS); + setenv("RUMP_NCPU", optarg, 1); + break; case 'd': { char *options, *value; char *key, *hostpath;