Use humanize_number() inside bhyveload?
Craig Rodrigues
rodrigc at FreeBSD.org
Mon Oct 7 06:31:31 UTC 2013
On Fri, Oct 4, 2013 at 1:40 PM, Peter Grehan <grehan at freebsd.org> wrote:
> Hi Craig,
>
>
> Can we use expand_number() in bhyve_load?
>>
>
> Please commit this change :)
>
> later,
>
> Peter.
>
>
Here is a bigger patch, which uses expand_number() in bhyveload and bhyve,
and also changes comments
in vmrun.sh to reflect the change.
Index: share/examples/bhyve/vmrun.sh
===================================================================
--- share/examples/bhyve/vmrun.sh (revision 256073)
+++ share/examples/bhyve/vmrun.sh (working copy)
@@ -31,7 +31,7 @@
BHYVECTL=/usr/sbin/bhyvectl
FBSDRUN=/usr/sbin/bhyve
-DEFAULT_MEMSIZE=512
+DEFAULT_MEMSIZE=512M
DEFAULT_CPUS=2
DEFAULT_TAPDEV=tap0
@@ -47,7 +47,7 @@
echo " -g: listen for connection from kgdb at <gdbport>"
echo " -i: force boot of the Installation CDROM image"
echo " -I: Installation CDROM image location (default is
${DEFAULT_ISOFILE})"
- echo " -m: memory size in MB (default is ${DEFAULT_MEMSIZE}MB)"
+ echo " -m: memory size (default is ${DEFAULT_MEMSIZE})"
echo " -t: tap device for virtio-net (default is $DEFAULT_TAPDEV)"
echo ""
echo " This script needs to be executed with superuser privileges"
Index: usr.sbin/bhyve/Makefile
===================================================================
--- usr.sbin/bhyve/Makefile (revision 256073)
+++ usr.sbin/bhyve/Makefile (working copy)
@@ -17,8 +17,8 @@
NO_MAN=
-DPADD= ${LIBVMMAPI} ${LIBMD} ${LIBPTHREAD}
-LDADD= -lvmmapi -lmd -lpthread
+DPADD= ${LIBVMMAPI} ${LIBMD} ${LIBUTIL} ${LIBPTHREAD}
+LDADD= -lvmmapi -lmd -lutil -lpthread
WARNS?= 2
Index: usr.sbin/bhyve/bhyverun.c
===================================================================
--- usr.sbin/bhyve/bhyverun.c (revision 256073)
+++ usr.sbin/bhyve/bhyverun.c (working copy)
@@ -37,7 +37,9 @@
#include <stdio.h>
#include <stdlib.h>
+#include <err.h>
#include <libgen.h>
+#include <libutil.h>
#include <unistd.h>
#include <assert.h>
#include <errno.h>
@@ -541,6 +543,9 @@
break;
case 'm':
memsize = strtoul(optarg, NULL, 0) * MB;
+ if (expand_number(optarg, &memsize) == -1)
+ errx(EXIT_FAILURE,
+ "invalid size argument `%s'", optarg);
break;
case 'H':
guest_vmexit_on_hlt = 1;
Index: usr.sbin/bhyveload/Makefile
===================================================================
--- usr.sbin/bhyveload/Makefile (revision 256073)
+++ usr.sbin/bhyveload/Makefile (working copy)
@@ -4,8 +4,8 @@
SRCS= bhyveload.c
MAN= bhyveload.8
-DPADD+= ${LIBVMMAPI}
-LDADD+= -lvmmapi
+DPADD+= ${LIBVMMAPI} ${LIBUTIL}
+LDADD+= -lvmmapi -lutil
WARNS?= 3
Index: usr.sbin/bhyveload/bhyveload.8
===================================================================
--- usr.sbin/bhyveload/bhyveload.8 (revision 256073)
+++ usr.sbin/bhyveload/bhyveload.8 (working copy)
@@ -1,4 +1,4 @@
-.\"
+\"
.\" Copyright (c) 2012 NetApp Inc
.\" All rights reserved.
.\"
@@ -60,13 +60,29 @@
.Sh OPTIONS
The following options are available:
.Bl -tag -width indent
-.It Fl m Ar mem-size
+.It Fl m Ar mem-size Xo
+.Sm off
+.Op Cm K | k | M | m | G | g | T | t
+.Xc
+.Sm on
.Ar mem-size
-is the amount of memory allocated to the guest in units of megabytes.
+is the amount of memory allocated to the guest.
.Pp
+The
+.Ar mem-size
+argument may be suffixed with one of
+.Cm K ,
+.Cm M ,
+.Cm G
+or
+.Cm T
+(either upper or lower case) to indicate a multiple of
+Kilobytes, Megabytes, Gigabytes or Terabytes
+respectively.
+.Pp
The default value of
.Ar mem-size
-is 256.
+is 256M.
.It Fl d Ar disk-path
The
.Ar disk-path
@@ -83,7 +99,7 @@
.Pa /freebsd/release.iso
and has 1GB memory allocated to it:
.Pp
-.Dl "bhyveload -m 1024 -d /freebsd/release.iso freebsd-vm"
+.Dl "bhyveload -m 1G -d /freebsd/release.iso freebsd-vm"
.Sh SEE ALSO
.Xr bhyve 4 ,
.Xr bhyve 8 ,
Index: usr.sbin/bhyveload/bhyveload.c
===================================================================
--- usr.sbin/bhyveload/bhyveload.c (revision 256073)
+++ usr.sbin/bhyveload/bhyveload.c (working copy)
@@ -67,9 +67,11 @@
#include <dirent.h>
#include <dlfcn.h>
#include <errno.h>
+#include <err.h>
#include <fcntl.h>
#include <getopt.h>
#include <limits.h>
+#include <libutil.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -581,7 +583,9 @@
break;
case 'm':
- mem_size = strtoul(optarg, NULL, 0) * MB;
+ if (expand_number(optarg, &mem_size) == -1)
+ errx(EXIT_FAILURE,
+ "invalid size argument `%s'", optarg);
break;
case '?':
More information about the freebsd-virtualization
mailing list