Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Oct 2013 23:31:28 -0700
From:      Craig Rodrigues <rodrigc@FreeBSD.org>
To:        Peter Grehan <grehan@freebsd.org>
Cc:        "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org>
Subject:   Re: Use humanize_number() inside bhyveload?
Message-ID:  <CAG=rPVfcPiK9xbfw04kp9BLSeRCgWtjRRx3q%2BieFsoq=eLQwSQ@mail.gmail.com>
In-Reply-To: <524F27A5.5010307@freebsd.org>
References:  <CAG=rPVeed2TDoSeCWO%2B8SQXtsn0uOFfC2y8dmTDT=9JW%2BApRBg@mail.gmail.com> <524F27A5.5010307@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Oct 4, 2013 at 1:40 PM, Peter Grehan <grehan@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 '?':



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG=rPVfcPiK9xbfw04kp9BLSeRCgWtjRRx3q%2BieFsoq=eLQwSQ>