Index | Thread | Search

From:
Dave Voutila <dv@sisu.io>
Subject:
Re: clean up __progname extern in vmd
To:
Mike Larkin <mlarkin@nested.page>
Cc:
tech@openbsd.org
Date:
Mon, 01 Dec 2025 15:14:59 -0500

Download raw body.

Thread
Mike Larkin <mlarkin@nested.page> writes:

> On Mon, Dec 01, 2025 at 01:32:14PM -0500, Dave Voutila wrote:
>> Many years ago before some of vmd's log.c was improved, vmd would
>> explicitly pass __progname to its logging functions. That's no longer
>> required and just adds noise.
>>
>> Diff below cleans it up and reduces vmd's footprint by 49 lines.
>>
>> A few log messages are tweaked and vague memory allocation messages
>> are made less vague as well.
>>
>> ok?
>>
>
> as long as the resulting logs are non-ambiguous, sure. I think I added
> that before to show what process was dumping that line into the log. Does this
> still make it clear which vmd process is the one doing the logging?

Yup.

I added that support previously in log.c:

033) 7da934ed 2015-11-23 reyk     void
034) 7da934ed 2015-11-23 reyk     log_init(int n_debug, int facility)
035) 7da934ed 2015-11-23 reyk     {
036) 7da934ed 2015-11-23 reyk           extern char     *__progname;
037) 7da934ed 2015-11-23 reyk
038) 7da934ed 2015-11-23 reyk           debug = n_debug;
039) 7da934ed 2015-11-23 reyk           verbose = n_debug;
040) 08d0da61 2023-09-26 dv             log_procinit("%s", __progname);
041) 7da934ed 2015-11-23 reyk
042) 7da934ed 2015-11-23 reyk           if (!debug)
043) 7da934ed 2015-11-23 reyk                   openlog(__progname, LOG_PID | LOG_NDELAY, facility);
044) 7da934ed 2015-11-23 reyk
045) 7da934ed 2015-11-23 reyk           tzset();
046) 7da934ed 2015-11-23 reyk     }

>
> ok mlarkin
>
>> -dv
>>
>> diffstat refs/heads/master refs/heads/vmd-progname
>>  M  usr.sbin/vmd/fw_cfg.c        |   8+  10-
>>  M  usr.sbin/vmd/i8253.c         |   2+   4-
>>  M  usr.sbin/vmd/loadfile_elf.c  |   2+   5-
>>  M  usr.sbin/vmd/ns8250.c        |   2+   5-
>>  M  usr.sbin/vmd/pci.c           |   6+   7-
>>  M  usr.sbin/vmd/vioblk.c        |   0+   1-
>>  M  usr.sbin/vmd/vionet.c        |   4+   9-
>>  M  usr.sbin/vmd/vioqcow2.c      |   0+   2-
>>  M  usr.sbin/vmd/vioscsi.c       |   0+   2-
>>  M  usr.sbin/vmd/virtio.c        |  24+  36-
>>  M  usr.sbin/vmd/vm.c            |  21+  33-
>>  M  usr.sbin/vmd/x86_vm.c        |   4+   8-
>>
>> 12 files changed, 73 insertions(+), 122 deletions(-)
>>
>> diff refs/heads/master refs/heads/vmd-progname
>> commit - 81c7ee7ce72201df8b014906636309b00d1be1bf
>> commit + 4111293e4fdc631f29848845974c8e08a8c87da2
>> blob - 158e9a1e7efdd197da390736276d94e8a77fa020
>> blob + ddc33d8d3d2c04521d1abfd65097b1f51917bedf
>> --- usr.sbin/vmd/fw_cfg.c
>> +++ usr.sbin/vmd/fw_cfg.c
>> @@ -55,8 +55,6 @@ struct fw_cfg_file {
>>  	char		name[56];
>>  };
>>
>> -extern char *__progname;
>> -
>>  static struct fw_cfg_state {
>>  	size_t offset;
>>  	size_t size;
>> @@ -219,8 +217,8 @@ vcpu_exit_fw_cfg(struct vm_run_params *vrp)
>>  	switch (vei->vei.vei_port) {
>>  	case FW_CFG_IO_SELECT:
>>  		if (vei->vei.vei_dir == VEI_DIR_IN) {
>> -			log_warnx("%s: fw_cfg: read from selector port "
>> -			    "unsupported", __progname);
>> +			log_warnx("fw_cfg: read from selector port "
>> +			    "unsupported");
>>  			set_return_data(vei, 0);
>>  			break;
>>  		}
>> @@ -229,8 +227,8 @@ vcpu_exit_fw_cfg(struct vm_run_params *vrp)
>>  		break;
>>  	case FW_CFG_IO_DATA:
>>  		if (vei->vei.vei_dir == VEI_DIR_OUT) {
>> -			log_debug("%s: fw_cfg: discarding data written to "
>> -			    "data port", __progname);
>> +			log_debug("fw_cfg: discarding data written to "
>> +			    "data port");
>>  			break;
>>  		}
>>  		/* fw_cfg only defines 1-byte reads via IO port */
>> @@ -255,8 +253,8 @@ vcpu_exit_fw_cfg_dma(struct vm_run_params *vrp)
>>  	struct vm_exit *vei = vrp->vrp_exit;
>>
>>  	if (vei->vei.vei_size != 4) {
>> -		log_debug("%s: fw_cfg_dma: discarding data written to "
>> -		    "dma addr", __progname);
>> +		log_debug("fw_cfg_dma: discarding data written to "
>> +		    "dma addr");
>>  		if (vei->vei.vei_dir == VEI_DIR_OUT)
>>  			fw_cfg_dma_addr = 0;
>>  		return 0xFF;
>> @@ -333,7 +331,7 @@ fw_cfg_add_file(const char *name, const void *data, si
>>  	struct fw_cfg_file_entry *f;
>>
>>  	if (fw_cfg_lookup_file(name))
>> -		fatalx("%s: fw_cfg: file %s exists", __progname, name);
>> +		fatalx("fw_cfg: file %s exists", name);
>>
>>  	if ((f = calloc(1, sizeof(*f))) == NULL)
>>  		fatal("%s", __func__);
>> @@ -343,7 +341,7 @@ fw_cfg_add_file(const char *name, const void *data, si
>>
>>  	if (strlcpy(f->file.name, name, sizeof(f->file.name)) >=
>>  	    sizeof(f->file.name))
>> -		fatalx("%s: fw_cfg: file name too long", __progname);
>> +		fatalx("fw_cfg: file name too long");
>>
>>  	f->file.size = htobe32(len);
>>  	f->file.selector = htobe16(file_id++);
>> blob - 96095b9517b67714c87ab612b688596c4131215b
>> blob + f3d42d6f9aead5ed1c21fce959a536d9508fca3a
>> --- usr.sbin/vmd/i8253.c
>> +++ usr.sbin/vmd/i8253.c
>> @@ -30,8 +30,6 @@
>>  #include "vmd.h"
>>  #include "atomicio.h"
>>
>> -extern char *__progname;
>> -
>>  /*
>>   * Channel 0 is used to generate the legacy hardclock interrupt (HZ).
>>   * Channels 1 and 2 can be used by the guest OS as regular timers,
>> @@ -274,8 +272,8 @@ vcpu_exit_i8253(struct vm_run_params *vrp)
>>
>>  			goto ret;
>>  		} else {
>> -			log_warnx("%s: i8253 PIT: read from control port "
>> -			    "unsupported", __progname);
>> +			log_warnx("i8253 PIT: read from control port "
>> +			    "unsupported");
>>  			set_return_data(vei, 0);
>>  		}
>>  	} else {
>> blob - 83ce058519fb8deb8f9be7e5daa44b9010010161
>> blob + 0eb28d6ca4fd0f3398066df5f4bc677dc9bb4ca7
>> --- usr.sbin/vmd/loadfile_elf.c
>> +++ usr.sbin/vmd/loadfile_elf.c
>> @@ -121,7 +121,6 @@ static void marc4random_buf(paddr_t, int);
>>  static void mbzero(paddr_t, int);
>>  static void mbcopy(void *, paddr_t, int);
>>
>> -extern char *__progname;
>>  extern int vm_id;
>>
>>  /*
>> @@ -456,8 +455,7 @@ mread(gzFile fp, paddr_t addr, size_t sz)
>>  			errstr = gzerror(fp, &errnum);
>>  			if (errnum == Z_ERRNO)
>>  				errnum = errno;
>> -			log_warnx("%s: error %d in mread, %s", __progname,
>> -			    errnum, errstr);
>> +			log_warnx("error %d in mread, %s", errnum, errstr);
>>  			return (0);
>>  		}
>>
>> @@ -483,8 +481,7 @@ mread(gzFile fp, paddr_t addr, size_t sz)
>>  			errstr = gzerror(fp, &errnum);
>>  			if (errnum == Z_ERRNO)
>>  				errnum = errno;
>> -			log_warnx("%s: error %d in mread, %s", __progname,
>> -			    errnum, errstr);
>> +			log_warnx("error %d in mread, %s", errnum, errstr);
>>  			return (0);
>>  		}
>>
>> blob - c47090dafb8eac5c2750abaad0e958f51cd35599
>> blob + 487eadfcfc93f6407db1e768d22176a3f24e5c2f
>> --- usr.sbin/vmd/ns8250.c
>> +++ usr.sbin/vmd/ns8250.c
>> @@ -31,7 +31,6 @@
>>  #include "ns8250.h"
>>  #include "vmd.h"
>>
>> -extern char *__progname;
>>  struct ns8250_dev com1_dev;
>>
>>  static struct vm_dev_pipe dev_pipe;
>> @@ -457,8 +456,7 @@ vcpu_process_com_lsr(struct vm_exit *vei)
>>  	 * continue.
>>  	 */
>>  	if (vei->vei.vei_dir == VEI_DIR_OUT) {
>> -		log_warnx("%s: LSR UART write 0x%x unsupported",
>> -		    __progname, vei->vei.vei_data);
>> +		log_warnx("LSR UART write 0x%x unsupported", vei->vei.vei_data);
>>  	} else {
>>  		/*
>>  		 * vei_dir == VEI_DIR_IN : in instruction
>> @@ -489,8 +487,7 @@ vcpu_process_com_msr(struct vm_exit *vei)
>>  	 * continue.
>>  	 */
>>  	if (vei->vei.vei_dir == VEI_DIR_OUT) {
>> -		log_warnx("%s: MSR UART write 0x%x unsupported",
>> -		    __progname, vei->vei.vei_data);
>> +		log_warnx("MSR UART write 0x%x unsupported", vei->vei.vei_data);
>>  	} else {
>>  		/*
>>  		 * vei_dir == VEI_DIR_IN : in instruction
>> blob - 3df66ad8e3d00d851847ee2fbb3ea610114b0915
>> blob + 1706271217a7a53e8d11b9698d2fed825a8faf20
>> --- usr.sbin/vmd/pci.c
>> +++ usr.sbin/vmd/pci.c
>> @@ -33,7 +33,6 @@
>>  struct pci pci;
>>
>>  extern struct vmd_vm current_vm;
>> -extern char *__progname;
>>
>>  /* PIC IRQs, assigned to devices in order */
>>  const uint8_t pci_pic_irqs[PCI_MAX_PIC_IRQS] = {3, 5, 6, 7, 9, 10, 11, 12,
>> @@ -97,8 +96,8 @@ pci_add_bar(uint8_t id, uint32_t type, void *barfn, vo
>>  		pci.pci_next_io_bar += VM_PCI_IO_BAR_SIZE;
>>  		pci.pci_devices[id].pd_barfunc[bar_ct] = barfn;
>>  		pci.pci_devices[id].pd_bar_cookie[bar_ct] = cookie;
>> -		DPRINTF("%s: adding pci bar cookie for dev %d bar %d = %p",
>> -		    __progname, id, bar_ct, cookie);
>> +		DPRINTF("adding pci bar cookie for dev %d bar %d = %p", id,
>> +		    bar_ct, cookie);
>>  		pci.pci_devices[id].pd_bartype[bar_ct] = PCI_BAR_TYPE_IO;
>>  		pci.pci_devices[id].pd_barsize[bar_ct] = VM_PCI_IO_BAR_SIZE;
>>  		pci.pci_devices[id].pd_bar_ct++;
>> @@ -259,7 +258,7 @@ pci_init(void)
>>  	if (pci_add_device(&id, PCI_VENDOR_OPENBSD, PCI_PRODUCT_OPENBSD_PCHB,
>>  	    PCI_CLASS_BRIDGE, PCI_SUBCLASS_BRIDGE_HOST,
>>  	    PCI_VENDOR_OPENBSD, 0, 0, 0, NULL)) {
>> -		log_warnx("%s: can't add PCI host bridge", __progname);
>> +		log_warnx("can't add PCI host bridge");
>>  		return;
>>  	}
>>  }
>> @@ -316,8 +315,8 @@ pci_handle_io(struct vm_run_params *vrp)
>>  	}
>>  found:
>>  	if (fn == NULL) {
>> -		DPRINTF("%s: no pci i/o function for reg 0x%llx (dir=%d "
>> -		    "guest %%rip=0x%llx", __progname, (uint64_t)reg, dir,
>> +		DPRINTF("no pci i/o function for reg 0x%llx (dir=%d guest "
>> +		    "%%rip=0x%llx)", (uint64_t)reg, dir,
>>  		    vei->vrs.vrs_gprs[VCPU_REGS_RIP]);
>>  		/* Reads from undefined ports return 0xFF */
>>  		if (dir == VEI_DIR_IN)
>> @@ -326,7 +325,7 @@ found:
>>  	}
>>
>>  	if (fn(dir, reg, &vei->vei.vei_data, &intr, cookie, sz))
>> -		log_warnx("%s: pci i/o access function failed", __progname);
>> +		log_warnx("pci i/o access function failed");
>>  	if (intr != 0xFF)
>>  		intr = irq;
>>
>> blob - 32b8bd7fac110900e4efbca690e24330c836e971
>> blob + 0465dab2ca421a46f58a1b268a55d50d83010f3e
>> --- usr.sbin/vmd/vioblk.c
>> +++ usr.sbin/vmd/vioblk.c
>> @@ -33,7 +33,6 @@
>>  #include "virtio.h"
>>  #include "vmd.h"
>>
>> -extern char *__progname;
>>  extern struct vmd_vm *current_vm;
>>  struct iovec io_v[VIRTIO_QUEUE_SIZE_MAX];
>>
>> blob - d207595747b0d5c9398dbe8d6444f929828b5e8c
>> blob + 27b0ba75a6c9b79ff4f3ab5e5a627d1e20356762
>> --- usr.sbin/vmd/vionet.c
>> +++ usr.sbin/vmd/vionet.c
>> @@ -54,7 +54,6 @@
>>  #define RXQ	0
>>  #define TXQ	1
>>
>> -extern char *__progname;
>>  extern struct vmd_vm *current_vm;
>>
>>  struct packet {
>> @@ -1085,8 +1084,7 @@ vionet_cfg_write(struct virtio_dev *dev, struct viodev
>>  			pci_cfg->device_feature_select = data;
>>  		break;
>>  	case VIO1_PCI_DEVICE_FEATURE:
>> -		log_warnx("%s: illegal write to device feature "
>> -		    "register", __progname);
>> +		log_warnx("illegal write to device feature register");
>>  		break;
>>  	case VIO1_PCI_DRIVER_FEATURE_SELECT:
>>  		if (sz != 4)
>> @@ -1122,8 +1120,7 @@ vionet_cfg_write(struct virtio_dev *dev, struct viodev
>>  		/* Ignore until we support MSIX. */
>>  		break;
>>  	case VIO1_PCI_NUM_QUEUES:
>> -		log_warnx("%s: illegal write to num queues register",
>> -		    __progname);
>> +		log_warnx("illegal write to num queues register");
>>  		break;
>>  	case VIO1_PCI_DEVICE_STATUS:
>>  		if (sz != 1) {
>> @@ -1169,8 +1166,7 @@ vionet_cfg_write(struct virtio_dev *dev, struct viodev
>>  		    "[failed]" : "");
>>  		break;
>>  	case VIO1_PCI_CONFIG_GENERATION:
>> -		log_warnx("%s: illegal write to config generation "
>> -		    "register", __progname);
>> +		log_warnx("illegal write to config generation register");
>>  		break;
>>  	case VIO1_PCI_QUEUE_SELECT:
>>  		pci_cfg->queue_select = data;
>> @@ -1193,8 +1189,7 @@ vionet_cfg_write(struct virtio_dev *dev, struct viodev
>>  		virtio_update_qa(dev);
>>  		break;
>>  	case VIO1_PCI_QUEUE_NOTIFY_OFF:
>> -		log_warnx("%s: illegal write to queue notify offset "
>> -		    "register", __progname);
>> +		log_warnx("illegal write to queue notify offset register");
>>  		break;
>>  	case VIO1_PCI_QUEUE_DESC:
>>  		if (sz != 4) {
>> blob - 72e83be1679d4b09839503b21a0bea40f95d593c
>> blob + a456e9344b22ad7f2a0a4df758d2b71f9dffca3b
>> --- usr.sbin/vmd/vioqcow2.c
>> +++ usr.sbin/vmd/vioqcow2.c
>> @@ -94,8 +94,6 @@ struct qcdisk {
>>  	uint32_t headersz;
>>  };
>>
>> -extern char *__progname;
>> -
>>  static off_t xlate(struct qcdisk *, off_t, int *);
>>  static void copy_cluster(struct qcdisk *, struct qcdisk *, off_t, off_t);
>>  static void inc_refs(struct qcdisk *, off_t, int);
>> blob - d51124b75816103728a572a12fea8af69038bce0
>> blob + 6794ccf8312ed41971c9b06115da83ab87cfc63f
>> --- usr.sbin/vmd/vioscsi.c
>> +++ usr.sbin/vmd/vioscsi.c
>> @@ -42,8 +42,6 @@
>>  #define DPRINTF(x...)	do {} while(0)
>>  #endif	/* VIOSCSI_DEBUG */
>>
>> -extern char *__progname;
>> -
>>  static void
>>  vioscsi_prepare_resp(struct virtio_scsi_res_hdr *resp, uint8_t vio_status,
>>      uint8_t scsi_status, uint8_t err_flags, uint8_t add_sense_code,
>> blob - b572e9b59e11ca0384bfa463ac02fb4a4280bbd7
>> blob + 650302b7ffc1e555ad0c5b960ac8627cc29e046c
>> --- usr.sbin/vmd/virtio.c
>> +++ usr.sbin/vmd/virtio.c
>> @@ -54,7 +54,6 @@
>>  #endif	/* VIRTIO_DEBUG */
>>
>>  extern struct vmd *env;
>> -extern char *__progname;
>>
>>  struct virtio_dev viornd;
>>  struct virtio_dev *vioscsi = NULL;
>> @@ -374,8 +373,7 @@ virtio_io_cfg(struct virtio_dev *dev, int dir, uint8_t
>>  				pci_cfg->device_feature_select = data;
>>  			break;
>>  		case VIO1_PCI_DEVICE_FEATURE:
>> -			log_warnx("%s: illegal write to device feature "
>> -			    "register", __progname);
>> +			log_warnx("illegal write to device feature register");
>>  			break;
>>  		case VIO1_PCI_DRIVER_FEATURE_SELECT:
>>  			if (sz != 4)
>> @@ -411,8 +409,7 @@ virtio_io_cfg(struct virtio_dev *dev, int dir, uint8_t
>>  			/* Ignore until we support MSIX. */
>>  			break;
>>  		case VIO1_PCI_NUM_QUEUES:
>> -			log_warnx("%s: illegal write to num queues register",
>> -			    __progname);
>> +			log_warnx("illegal write to num queues register");
>>  			break;
>>  		case VIO1_PCI_DEVICE_STATUS:
>>  			if (sz != 1) {
>> @@ -458,8 +455,8 @@ virtio_io_cfg(struct virtio_dev *dev, int dir, uint8_t
>>
>>  			break;
>>  		case VIO1_PCI_CONFIG_GENERATION:
>> -			log_warnx("%s: illegal write to config generation "
>> -			    "register", __progname);
>> +			log_warnx("illegal write to config generation "
>> +			    "register");
>>  			break;
>>  		case VIO1_PCI_QUEUE_SELECT:
>>  			pci_cfg->queue_select = data;
>> @@ -482,8 +479,8 @@ virtio_io_cfg(struct virtio_dev *dev, int dir, uint8_t
>>  			virtio_update_qa(dev);
>>  			break;
>>  		case VIO1_PCI_QUEUE_NOTIFY_OFF:
>> -			log_warnx("%s: illegal write to queue notify offset "
>> -			    "register", __progname);
>> +			log_warnx("illegal write to queue notify offset "
>> +			    "register");
>>  			break;
>>  		case VIO1_PCI_QUEUE_DESC:
>>  			if (sz != 4) {
>> @@ -849,7 +846,7 @@ vmmci_timeout(int fd, short type, void *arg)
>>  		fatalx("%s: device is not a vmmci device", __func__);
>>  	v = &dev->vmmci;
>>
>> -	log_debug("%s: vm %u shutdown", __progname, dev->vm_id);
>> +	log_debug("vm %u shutdown", dev->vm_id);
>>  	vm_shutdown(v->cmd == VMMCI_REBOOT ? VMMCI_REBOOT : VMMCI_SHUTDOWN);
>>  }
>>
>> @@ -873,8 +870,8 @@ vmmci_io(int dir, uint16_t reg, uint32_t *data, uint8_
>>  		case VIRTIO_CONFIG_DEVICE_FEATURES:
>>  		case VIRTIO_CONFIG_QUEUE_SIZE:
>>  		case VIRTIO_CONFIG_ISR_STATUS:
>> -			log_warnx("%s: illegal write %x to %s",
>> -			    __progname, *data, virtio_reg_name(reg));
>> +			log_warnx("illegal write %x to %s", *data,
>> +			    virtio_reg_name(reg));
>>  			break;
>>  		case VIRTIO_CONFIG_GUEST_FEATURES:
>>  			dev->cfg.guest_feature = *data;
>> @@ -1005,8 +1002,7 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  	    PCI_PRODUCT_QUMRANET_VIO1_RNG, PCI_CLASS_SYSTEM,
>>  	    PCI_SUBCLASS_SYSTEM_MISC, PCI_VENDOR_OPENBSD,
>>  	    PCI_PRODUCT_VIRTIO_ENTROPY, 1, 1, NULL)) {
>> -		log_warnx("%s: can't add PCI virtio rng device",
>> -		    __progname);
>> +		log_warnx("can't add PCI virtio rng device");
>>  		return (1);
>>  	}
>>  	virtio_dev_init(&viornd, id, VIORND_QUEUE_SIZE_DEFAULT,
>> @@ -1015,8 +1011,7 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  	bar_id = pci_add_bar(id, PCI_MAPREG_TYPE_IO, virtio_io_dispatch,
>>  	    &viornd);
>>  	if (bar_id == -1 || bar_id > 0xff) {
>> -		log_warnx("%s: can't add bar for virtio rng device",
>> -		    __progname);
>> +		log_warnx("can't add bar for virtio rng device");
>>  		return (1);
>>  	}
>>  	virtio_pci_add_cap(id, VIRTIO_PCI_CAP_COMMON_CFG, bar_id, 0);
>> @@ -1028,16 +1023,14 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  		for (i = 0; i < vmc->vmc_nnics; i++) {
>>  			dev = malloc(sizeof(struct virtio_dev));
>>  			if (dev == NULL) {
>> -				log_warn("%s: calloc failure allocating vionet",
>> -				    __progname);
>> +				log_warn("calloc failure allocating vionet");
>>  				return (1);
>>  			}
>>  			if (pci_add_device(&id, PCI_VENDOR_QUMRANET,
>>  				PCI_PRODUCT_QUMRANET_VIO1_NET, PCI_CLASS_SYSTEM,
>>  				PCI_SUBCLASS_SYSTEM_MISC, PCI_VENDOR_OPENBSD,
>>  				PCI_PRODUCT_VIRTIO_NETWORK, 1, 1, NULL)) {
>> -				log_warnx("%s: can't add PCI virtio net device",
>> -				    __progname);
>> +				log_warnx("can't add PCI virtio net device");
>>  				return (1);
>>  			}
>>  			virtio_dev_init(dev, id, VIONET_QUEUE_SIZE_DEFAULT,
>> @@ -1047,8 +1040,8 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>
>>  			if (pci_add_bar(id, PCI_MAPREG_TYPE_IO, virtio_pci_io,
>>  			    dev) == -1) {
>> -				log_warnx("%s: can't add bar for virtio net "
>> -				    "device", __progname);
>> +				log_warnx("can't add bar for virtio net "
>> +				    "device");
>>  				return (1);
>>  			}
>>  			virtio_pci_add_cap(id, VIRTIO_PCI_CAP_COMMON_CFG,
>> @@ -1103,8 +1096,8 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  			    PCI_CLASS_MASS_STORAGE,
>>  			    PCI_SUBCLASS_MASS_STORAGE_SCSI, PCI_VENDOR_OPENBSD,
>>  			    PCI_PRODUCT_VIRTIO_BLOCK, 1, 1, NULL)) {
>> -				log_warnx("%s: can't add PCI virtio block "
>> -				    "device", __progname);
>> +				log_warnx("can't add PCI virtio block "
>> +				    "device");
>>  				return (1);
>>  			}
>>  			virtio_dev_init(dev, id, VIOBLK_QUEUE_SIZE_DEFAULT,
>> @@ -1115,8 +1108,8 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  			bar_id = pci_add_bar(id, PCI_MAPREG_TYPE_IO, virtio_pci_io,
>>  			    dev);
>>  			if (bar_id == -1 || bar_id > 0xff) {
>> -				log_warnx("%s: can't add bar for virtio block "
>> -				    "device", __progname);
>> +				log_warnx("can't add bar for virtio block "
>> +				    "device");
>>  				return (1);
>>  			}
>>  			virtio_pci_add_cap(id, VIRTIO_PCI_CAP_COMMON_CFG,
>> @@ -1162,24 +1155,21 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  	if (strlen(vmc->vmc_cdrom)) {
>>  		dev = malloc(sizeof(struct virtio_dev));
>>  		if (dev == NULL) {
>> -			log_warn("%s: calloc failure allocating vioscsi",
>> -			    __progname);
>> +			log_warn("calloc failure allocating vioscsi");
>>  			return (1);
>>  		}
>>  		if (pci_add_device(&id, PCI_VENDOR_QUMRANET,
>>  		    PCI_PRODUCT_QUMRANET_VIO1_SCSI, PCI_CLASS_MASS_STORAGE,
>>  		    PCI_SUBCLASS_MASS_STORAGE_SCSI, PCI_VENDOR_OPENBSD,
>>  		    PCI_PRODUCT_VIRTIO_SCSI, 1, 1, NULL)) {
>> -			log_warnx("%s: can't add PCI vioscsi device",
>> -			    __progname);
>> +			log_warnx("can't add PCI vioscsi device");
>>  			return (1);
>>  		}
>>  		virtio_dev_init(dev, id, VIOSCSI_QUEUE_SIZE_DEFAULT,
>>  		    VIRTIO_SCSI_QUEUES, VIRTIO_F_VERSION_1, vcp->vcp_id);
>>  		if (pci_add_bar(id, PCI_MAPREG_TYPE_IO, virtio_io_dispatch, dev)
>>  		    == -1) {
>> -			log_warnx("%s: can't add bar for vioscsi device",
>> -			    __progname);
>> +			log_warnx("can't add bar for vioscsi device");
>>  			return (1);
>>  		}
>>  		virtio_pci_add_cap(id, VIRTIO_PCI_CAP_COMMON_CFG, bar_id, 0);
>> @@ -1206,15 +1196,13 @@ virtio_init(struct vmd_vm *vm, int child_cdrom,
>>  	if (pci_add_device(&id, PCI_VENDOR_OPENBSD, PCI_PRODUCT_OPENBSD_CONTROL,
>>  	    PCI_CLASS_COMMUNICATIONS, PCI_SUBCLASS_COMMUNICATIONS_MISC,
>>  	    PCI_VENDOR_OPENBSD, PCI_PRODUCT_VIRTIO_VMMCI, 0, 1, NULL)) {
>> -		log_warnx("%s: can't add PCI vmm control device",
>> -		    __progname);
>> +		log_warnx("can't add PCI vmm control device");
>>  		return (1);
>>  	}
>>  	virtio_dev_init(dev, id, 0, 0,
>>  	    VMMCI_F_TIMESYNC | VMMCI_F_ACK | VMMCI_F_SYNCRTC, vcp->vcp_id);
>>  	if (pci_add_bar(id, PCI_MAPREG_TYPE_IO, vmmci_io, dev) == -1) {
>> -		log_warnx("%s: can't add bar for vmm control device",
>> -		    __progname);
>> +		log_warnx("can't add bar for vmm control device");
>>  		return (1);
>>  	}
>>
>> blob - bdd7e276ff5cdc1ae26234bcb8647ce11e92c54c
>> blob + 181f183bfd19bbb4e74dfc18b359e1b35679c8a3
>> --- usr.sbin/vmd/vm.c
>> +++ usr.sbin/vmd/vm.c
>> @@ -58,8 +58,6 @@ struct vmd_vm *current_vm;
>>
>>  extern struct vmd *env;
>>
>> -extern char *__progname;
>> -
>>  pthread_mutex_t threadmutex;
>>  pthread_cond_t threadcond;
>>
>> @@ -601,10 +599,13 @@ run_vm(struct vmop_create_params *vmc, struct vcpu_reg
>>  		return (EINVAL);
>>
>>  	tid = calloc(vcp->vcp_ncpus, sizeof(pthread_t));
>> +	if (tid == NULL) {
>> +		log_warn("failed to allocate pthread structures");
>> +		return (ENOMEM);
>> +	}
>>  	vrp = calloc(vcp->vcp_ncpus, sizeof(struct vm_run_params *));
>> -	if (tid == NULL || vrp == NULL) {
>> -		log_warn("%s: memory allocation error - exiting.",
>> -		    __progname);
>> +	if (vrp == NULL) {
>> +		log_warn("failed to allocate vm run params array");
>>  		return (ENOMEM);
>>  	}
>>
>> @@ -626,15 +627,13 @@ run_vm(struct vmop_create_params *vmc, struct vcpu_reg
>>  	for (i = 0 ; i < vcp->vcp_ncpus; i++) {
>>  		vrp[i] = malloc(sizeof(struct vm_run_params));
>>  		if (vrp[i] == NULL) {
>> -			log_warn("%s: memory allocation error - "
>> -			    "exiting.", __progname);
>> +			log_warn("failed to allocate vm run parameters");
>>  			/* caller will exit, so skip freeing */
>>  			return (ENOMEM);
>>  		}
>>  		vrp[i]->vrp_exit = malloc(sizeof(struct vm_exit));
>>  		if (vrp[i]->vrp_exit == NULL) {
>> -			log_warn("%s: memory allocation error - "
>> -			    "exiting.", __progname);
>> +			log_warn("failed to allocate vm exit area");
>>  			/* caller will exit, so skip freeing */
>>  			return (ENOMEM);
>>  		}
>> @@ -642,60 +641,51 @@ run_vm(struct vmop_create_params *vmc, struct vcpu_reg
>>  		vrp[i]->vrp_vcpu_id = i;
>>
>>  		if (vcpu_reset(vcp->vcp_id, i, vrs)) {
>> -			log_warnx("%s: cannot reset VCPU %zu - exiting.",
>> -			    __progname, i);
>> +			log_warnx("cannot reset vcpu %zu", i);
>>  			return (EIO);
>>  		}
>>
>>  		if (sev_activate(current_vm, i)) {
>> -			log_warnx("%s: SEV activatation failed for VCPU "
>> -			    "%zu failed - exiting.", __progname, i);
>> +			log_warnx("SEV activatation failed for vcpu %zu", i);
>>  			return (EIO);
>>  		}
>>
>>  		if (sev_encrypt_memory(current_vm)) {
>> -			log_warnx("%s: memory encryption failed for VCPU "
>> -			    "%zu failed - exiting.", __progname, i);
>> +			log_warnx("memory encryption failed for vcpu %zu", i);
>>  			return (EIO);
>>  		}
>>
>>  		if (sev_encrypt_state(current_vm, i)) {
>> -			log_warnx("%s: state encryption failed for VCPU "
>> -			    "%zu failed - exiting.", __progname, i);
>> +			log_warnx("state encryption failed for vcpu %zu", i);
>>  			return (EIO);
>>  		}
>>
>>  		if (sev_launch_finalize(current_vm)) {
>> -			log_warnx("%s: encryption failed for VCPU "
>> -			    "%zu failed - exiting.", __progname, i);
>> +			log_warnx("encryption failed for vcpu %zu", i);
>>  			return (EIO);
>>  		}
>>
>>  		ret = pthread_cond_init(&vcpu_run_cond[i], NULL);
>>  		if (ret) {
>> -			log_warnx("%s: cannot initialize cond var (%d)",
>> -			    __progname, ret);
>> +			log_warnx("cannot initialize cond var (%d)", ret);
>>  			return (ret);
>>  		}
>>
>>  		ret = pthread_mutex_init(&vcpu_run_mtx[i], NULL);
>>  		if (ret) {
>> -			log_warnx("%s: cannot initialize mtx (%d)",
>> -			    __progname, ret);
>> +			log_warnx("cannot initialize mtx (%d)", ret);
>>  			return (ret);
>>  		}
>>
>>  		ret = pthread_cond_init(&vcpu_unpause_cond[i], NULL);
>>  		if (ret) {
>> -			log_warnx("%s: cannot initialize unpause var (%d)",
>> -			    __progname, ret);
>> +			log_warnx("cannot initialize unpause var (%d)", ret);
>>  			return (ret);
>>  		}
>>
>>  		ret = pthread_mutex_init(&vcpu_unpause_mtx[i], NULL);
>>  		if (ret) {
>> -			log_warnx("%s: cannot initialize unpause mtx (%d)",
>> -			    __progname, ret);
>> +			log_warnx("cannot initialize unpause mtx (%d)", ret);
>>  			return (ret);
>>  		}
>>
>> @@ -741,8 +731,7 @@ run_vm(struct vmop_create_params *vmc, struct vcpu_reg
>>  				continue;
>>
>>  			if (pthread_join(tid[i], &exit_status)) {
>> -				log_warn("%s: failed to join thread %zd - "
>> -				    "exiting", __progname, i);
>> +				log_warn("failed to join thread %zd", i);
>>  				mutex_unlock(&vm_mtx);
>>  				return (EIO);
>>  			}
>> @@ -754,13 +743,12 @@ run_vm(struct vmop_create_params *vmc, struct vcpu_reg
>>  		/* Did the event thread exit? => return with an error */
>>  		if (evdone) {
>>  			if (pthread_join(evtid, &exit_status)) {
>> -				log_warn("%s: failed to join event thread - "
>> -				    "exiting", __progname);
>> +				log_warn("failed to join event thread");
>>  				return (EIO);
>>  			}
>>
>> -			log_warnx("%s: vm %d event thread exited "
>> -			    "unexpectedly", __progname, vcp->vcp_id);
>> +			log_warnx("vm %d event thread exited unexpectedly",
>> +			    vcp->vcp_id);
>>  			return (EIO);
>>  		}
>>
>> blob - 9b1bcaa146877458e80ddb4459a89ffc550bd28f
>> blob + 8ca2fd1efe767550534a366f06402ee92549c12a
>> --- usr.sbin/vmd/x86_vm.c
>> +++ usr.sbin/vmd/x86_vm.c
>> @@ -46,7 +46,6 @@ typedef uint8_t (*io_fn_t)(struct vm_run_params *);
>>  #define MAX_PORTS 65536
>>
>>  io_fn_t	ioports_map[MAX_PORTS];
>> -extern char *__progname;
>>
>>  void	 create_memory_map(struct vm_create_params *);
>>  int	 translate_gva(struct vm_exit*, uint64_t, uint64_t *, int);
>> @@ -551,8 +550,7 @@ vcpu_exit(struct vm_run_params *vrp)
>>  		/* reset VM */
>>  		return (EAGAIN);
>>  	default:
>> -		log_debug("%s: unknown exit reason 0x%x",
>> -		    __progname, vrp->vrp_exit_reason);
>> +		log_debug("unknown exit reason 0x%x", vrp->vrp_exit_reason);
>>  	}
>>
>>  	return (0);
>> @@ -630,14 +628,13 @@ vcpu_exit_eptviolation(struct vm_run_params *vrp)
>>  #endif /* MMIO_NOTYET */
>>
>>  	case VEE_FAULT_PROTECT:
>> -		log_debug("%s: EPT Violation: rip=0x%llx", __progname,
>> +		log_debug("EPT Violation: rip=0x%llx",
>>  		    ve->vrs.vrs_gprs[VCPU_REGS_RIP]);
>>  		ret = EFAULT;
>>  		break;
>>
>>  	default:
>> -		fatalx("%s: invalid fault_type %d", __progname,
>> -		    ve->vee.vee_fault_type);
>> +		fatalx("invalid fault_type %d", ve->vee.vee_fault_type);
>>  		/* UNREACHED */
>>  	}
>>
>> @@ -678,8 +675,7 @@ vcpu_exit_pci(struct vm_run_params *vrp)
>>  		intr = pci_handle_io(vrp);
>>  		break;
>>  	default:
>> -		log_warnx("%s: unknown PCI register 0x%llx",
>> -		    __progname, (uint64_t)vei->vei.vei_port);
>> +		log_warnx("unknown PCI register 0x%04x", vei->vei.vei_port);
>>  		break;
>>  	}
>>