Download raw body.
clean up __progname extern in vmd
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;
>> }
>>
clean up __progname extern in vmd