On Mon, Feb 27, 2017 at 10:48:48AM +0100, Reyk Floeter wrote: > Hi, > > I have a serious of vmd diffs, see the 5th one for the interesting part. > The first one is rather cosmetic, but will be needed for the status output. > > Use fmt_scaled(3) in vmctl status output to print curmem/maxmem > > This matches the accepted input in vmctl start and vm.conf that > supports using M, G, T etc. instead of a hardcoded MB. It also allows > to shrink the column size as the unit will be scaled automatically. > > OK? >
ok mlarkin > Reyk > > diff --git usr.sbin/vmctl/vmctl.c usr.sbin/vmctl/vmctl.c > index 352383c..ca2da8a 100644 > --- usr.sbin/vmctl/vmctl.c > +++ usr.sbin/vmctl/vmctl.c > @@ -34,6 +34,7 @@ > #include <stdlib.h> > #include <string.h> > #include <unistd.h> > +#include <util.h> > > #include "vmd.h" > #include "vmctl.h" > @@ -363,27 +364,43 @@ void > print_vm_info(struct vmop_info_result *list, size_t ct) > { > struct vm_info_result *vir; > + struct vmop_info_result *vmi; > size_t i, j; > - char *vcpu_state; > + char *vcpu_state, *tty; > + char curmem[FMT_SCALED_STRSIZE]; > + char maxmem[FMT_SCALED_STRSIZE]; > + > + printf("%5s %5s %5s %7s %7s %7s %s\n", "ID", "PID", "VCPUS", > + "MAXMEM", "CURMEM", "TTY", "NAME"); > > - printf("%5s %5s %5s %9s %9s %*s %s\n", "ID", "PID", "VCPUS", "MAXMEM", > - "CURMEM", VM_TTYNAME_MAX, "TTY", "NAME"); > for (i = 0; i < ct; i++) { > - vir = &list[i].vir_info; > + vmi = &list[i]; > + vir = &vmi->vir_info; > if (check_info_id(vir->vir_name, vir->vir_id)) { > + (void)strlcpy(curmem, "-", sizeof(curmem)); > + (void)strlcpy(maxmem, "-", sizeof(maxmem)); > + > + (void)fmt_scaled(vir->vir_memory_size * 1024 * 1024, > + maxmem); > + > if (vir->vir_id != 0) { > + /* get tty - skip /dev/ path */ > + if ((tty = strrchr(vmi->vir_ttyname, > + '/')) == NULL || ++tty == '\0') > + tty = list[i].vir_ttyname; > + > + (void)fmt_scaled(vir->vir_used_size, curmem); > + > /* running vm */ > - printf("%5u %5u %5zd %7zdMB %7zdMB %*s %s\n", > + printf("%5u %5u %5zd %7s %7s %7s %s\n", > vir->vir_id, vir->vir_creator_pid, > - vir->vir_ncpus, vir->vir_memory_size, > - vir->vir_used_size / 1024 / 1024 , > VM_TTYNAME_MAX, > - list[i].vir_ttyname, vir->vir_name); > + vir->vir_ncpus, maxmem, curmem, > + tty, vir->vir_name); > } else { > /* disabled vm */ > - printf("%5s %5s %5zd %7zdMB %9s %*s %s\n", > + printf("%5s %5s %5zd %7s %7s %7s %s\n", > "-", "-", > - vir->vir_ncpus, vir->vir_memory_size, > - "-", VM_TTYNAME_MAX, > + vir->vir_ncpus, maxmem, curmem, > "-", vir->vir_name); > } > } >