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);
>                       }
>               }
> 

Reply via email to