On Wed, Jul 26, 2023 at 12:23:58PM -0400, Dave Voutila wrote:
> When adding exec for vm's and fork/exec'd vio{blk,net} devices, the
> current verbosity wasn't being set on the new process. The below change
> keeps it simple, avoiding runtime string manipulation. Also tosses in an
> ifdef around a very chatty debug message related to ipc with devices.
>
> This doesn't address runtime toggling of verbosity with vmctl(8) nor
> does it address the fact vmd has a janky concept of verbosity. Those are
> future fixes.
>
> ok?
>

ok mlarkin if you're still looking for oks.

-ml

> diffstat /usr/src
>  M  usr.sbin/vmd/virtio.c  |  9+  4-
>  M  usr.sbin/vmd/vmd.h     |  4+  0-
>  M  usr.sbin/vmd/vmm.c     |  7+  4-
>
> 3 files changed, 20 insertions(+), 8 deletions(-)
>
> diff /usr/src
> commit - 3228b0c4b8598ac2f799f997d457a8ba24307bec
> path + /usr/src
> blob - a58e35115432b3d16fb456e71bd71f93d9e2467d
> file + usr.sbin/vmd/virtio.c
> --- usr.sbin/vmd/virtio.c
> +++ usr.sbin/vmd/virtio.c
> @@ -1475,12 +1475,15 @@ virtio_dev_launch(struct vmd_vm *vm, struct virtio_dev
>               nargv[5] = "-i";
>               nargv[6] = vmm_fd;
>               nargv[7] = "-n";
> +             nargv[8] = NULL;
>
> -             if (env->vmd_verbose) {
> -                     nargv[8] = "-v";
> +             if (env->vmd_verbose == 1) {
> +                     nargv[8] = VMD_VERBOSE_1;
>                       nargv[9] = NULL;
> -             } else
> -                     nargv[8] = NULL;
> +             } else if (env->vmd_verbose > 1) {
> +                     nargv[8] = VMD_VERBOSE_2;
> +                     nargv[9] = NULL;
> +             }
>
>               /* Control resumes in vmd.c:main(). */
>               execvp(nargv[0], nargv);
> @@ -1699,8 +1702,10 @@ virtio_pci_io(int dir, uint16_t reg, uint32_t *data, u
>               imsg_free(&imsg);
>
>               if (msg.type == VIODEV_MSG_IO_READ && msg.data_valid) {
> +#if DEBUG
>                       log_debug("%s: got sync read response (reg=%s)",
>                           __func__, virtio_reg_name(msg.reg));
> +#endif /* DEBUG */
>                       *data = msg.data;
>                       /*
>                        * It's possible we're asked to {de,}assert after the
> blob - 744b8d1957423b91202b9630fe4a5a6dc4158089
> file + usr.sbin/vmd/vmd.h
> --- usr.sbin/vmd/vmd.h
> +++ usr.sbin/vmd/vmd.h
> @@ -102,6 +102,10 @@ enum imsg_type {
>  /* Unique local address for IPv6 */
>  #define VMD_ULA_PREFIX               "fd00::/8"
>
> +/* Verbosity arguments for use when caling execvp(2). */
> +#define VMD_VERBOSE_1                "-v";
> +#define VMD_VERBOSE_2                "-vv";
> +
>  enum imsg_type {
>       IMSG_VMDOP_START_VM_REQUEST = IMSG_PROC_MAX,
>       IMSG_VMDOP_START_VM_CDROM,
> blob - 541222e027294ea6d85c957e9cc1a55bb1ac829c
> file + usr.sbin/vmd/vmm.c
> --- usr.sbin/vmd/vmm.c
> +++ usr.sbin/vmd/vmm.c
> @@ -782,12 +782,15 @@ vmm_start_vm(struct imsg *imsg, uint32_t *id, pid_t *p
>               nargv[3] = "-n";
>               nargv[4] = "-i";
>               nargv[5] = vmm_fd;
> +             nargv[6] = NULL;
>
> -             if (env->vmd_verbose) {
> -                     nargv[6] = "-v";
> +             if (env->vmd_verbose == 1) {
> +                     nargv[6] = VMD_VERBOSE_1;
>                       nargv[7] = NULL;
> -             } else
> -                     nargv[6] = NULL;
> +             } else if (env->vmd_verbose > 1) {
> +                     nargv[6] = VMD_VERBOSE_2;
> +                     nargv[7] = NULL;
> +             }
>
>               /* Control resumes in vmd main(). */
>               execvp(nargv[0], nargv);
>

Reply via email to