(I'm not sure current-users is the best place to discuss this, but I don't know for sure where would be better -- it is current I'm running) So I've got a beefy Mac Pro desktop and I've been wanting to run NetBSD VMs in it. For years I used to run VirtualBox for this, but in recent times it is absolutely hopeless at allowing NetBSD VMs to keep good time. So since macOS now has its own hypervisor (Hypervisor.framework, and now since macOS 12 a Virtualization.framework too) I wanted to try it. There's a package called UTM (https://github.com/utmapp/UTM) that helps manage VMs using QEMU with hardware acceleration via the macOS hypervisor. I set up a test VM with UTM sometime last year, but the networking seemed a little unstable. I'm not sure that's resolved yet. It seems like it might be a macOS problem with the underlying bridge disappearing or changing. The VM still thinks the interface is up, but packets from either side stop being delivered anywhere. Anyway, yesterday I installed a new VM with a new build of -current and I tried a couple of different configuration options vs. the year-old build I had been testing before. One change was to try using a SCSI emulated device for the primary disk. This did not work well -- it was fairly fast, but often seemed to hang, causing time outs and bus resets. I was unable to get very far in the installation and gave up. So I reverted to IDE, which has been reliable, but seems about 1/3 the speed of the SCSI emulation. So, my main question is with the device emulations available in QEMU, which do people have the most luck and performance with? For the curious here's a dmesg.boot: Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 10.99.12 (GENERIC) #0: Tue Feb 25 18:15:43 PST 2025 woods@very.local:/Users/woods/build/woods/very.local/trunk-x86_64-amd64-obj/Volumes/work/woods/g-NetBSD-src/sys/arch/amd64/compile/GENERIC total memory = 8188 MB avail memory = 7890 MB timecounter: Timecounters tick every 10.000 msec Kernelized RAIDframe activated timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100 efi: systbl at pa bf9ee018 mainbus0 (root) ACPI: RSDP 0x00000000BFB7E014 000024 (v02 BOCHS ) ACPI: XSDT 0x00000000BFB7D0E8 000044 (v01 BOCHS BXPC 00000001 01000013) ACPI: FACP 0x00000000BFB7A000 000074 (v01 BOCHS BXPC 00000001 BXPC 00000001) ACPI: DSDT 0x00000000BFB7B000 001BE6 (v01 BOCHS BXPC 00000001 BXPC 00000001) ACPI: FACS 0x00000000BFBDD000 000040 ACPI: APIC 0x00000000BFB79000 0000B0 (v03 BOCHS BXPC 00000001 BXPC 00000001) ACPI: WAET 0x00000000BFB78000 000028 (v01 BOCHS BXPC 00000001 BXPC 00000001) ACPI: BGRT 0x00000000BFB77000 000038 (v01 INTEL EDK2 00000002 01000013) ACPI: 1 ACPI AML tables successfully acquired and loaded ioapic0 at mainbus0 apid 0: pa 0xfec00000, version 0x20, 24 pins cpu0 at mainbus0 apid 0 cpu0: Use lfence to serialize rdtsc cpu0: Intel Core Processor (Skylake), id 0x506e3 cpu0: node 0, package 0, core 0, smt 0 cpu1 at mainbus0 apid 1 cpu1: Intel Core Processor (Skylake), id 0x506e3 cpu1: node 0, package 0, core 1, smt 0 cpu2 at mainbus0 apid 2 cpu2: Intel Core Processor (Skylake), id 0x506e3 cpu2: node 0, package 0, core 2, smt 0 cpu3 at mainbus0 apid 3 cpu3: Intel Core Processor (Skylake), id 0x506e3 cpu3: node 0, package 0, core 3, smt 0 cpu4 at mainbus0 apid 4 cpu4: Intel Core Processor (Skylake), id 0x506e3 cpu4: node 0, package 0, core 4, smt 0 cpu5 at mainbus0 apid 5 cpu5: Intel Core Processor (Skylake), id 0x506e3 cpu5: node 0, package 0, core 5, smt 0 cpu6 at mainbus0 apid 6 cpu6: Intel Core Processor (Skylake), id 0x506e3 cpu6: node 0, package 0, core 6, smt 0 cpu7 at mainbus0 apid 7 cpu7: Intel Core Processor (Skylake), id 0x506e3 cpu7: node 0, package 0, core 7, smt 0 acpi0 at mainbus0: Intel ACPICA 20241212 acpi0: X/RSDT: OemId <BOCHS ,BXPC ,00000001>, AslId < ,01000013> LNKS: ACPI: Found matching pin for 0.1.INTA at func 3: 10 LNKS: BIOS IRQ 10 for 0.1.INTA is invalid LNKD: ACPI: Found matching pin for 0.1.INTD at func 2: 11 LNKD: BIOS IRQ 11 does not match initial IRQ 10 LNKB: ACPI: Found matching pin for 0.2.INTA at func 0: 10 LNKB: BIOS IRQ 10 does not match initial IRQ 11 LNKC: ACPI: Found matching pin for 0.3.INTA at func 0: 11 LNKC: BIOS IRQ 11 does not match initial IRQ 10 LNKD: ACPI: Found matching pin for 0.4.INTA at func 0: 11 LNKA: ACPI: Found matching pin for 0.5.INTA at func 0: 10 LNKA: BIOS IRQ 10 does not match initial IRQ 11 LNKB: ACPI: Found matching pin for 0.6.INTA at func 0: 10 LNKC: ACPI: Found matching pin for 0.7.INTA at func 0: 11 acpi0: SCI interrupting at int 9 acpi0: fixed power button present timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000 qemufwcfg0 at acpi0 (FWCF, QEMU0002): io 0x510-0x51b qemufwcfg0: <QEMU> fdc0 at acpi0 (FDC0, PNP0700): io 0x3f2-0x3f5,0x3f7 irq 6 drq 2 ACPI: Enabled 2 GPEs in block 00 to 0F pci0 at mainbus0 bus 0: configuration mode 1 pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok pchb0 at pci0 dev 0 function 0: Intel 82441FX (PMC) PCI and Memory Controller (rev. 0x02) pcib0 at pci0 dev 1 function 0: Intel 82371SB (PIIX3) PCI-ISA Bridge (rev. 0x00) piixide0 at pci0 dev 1 function 1: Intel 82371SB IDE Interface (PIIX3) (rev. 0x00) piixide0: bus-master DMA support present piixide0: primary channel wired to compatibility mode piixide0: primary channel interrupting at ioapic0 pin 14 atabus0 at piixide0 channel 0 piixide0: secondary channel wired to compatibility mode piixide0: secondary channel ignored (disabled) uhci0 at pci0 dev 1 function 2: Intel 82371SB (PIIX3) USB Host Controller (rev. 0x01) uhci0: interrupting at ioapic0 pin 11 usb0 at uhci0: USB revision 1.0 piixpm0 at pci0 dev 1 function 3: Intel 82371AB (PIIX4) Power Management Controller (rev. 0x03) timecounter: Timecounter "piixpm0" frequency 3579545 Hz quality 1000 piixpm0: 24-bit timer piixpm0: interrupting at ioapic0 pin 9 iic0 at piixpm0 port 0: I2C bus wm0 at pci0 dev 2 function 0, 64-bit DMA: Intel i82540EM 1000BASE-T Ethernet (rev. 0x03) wm0: interrupting at ioapic0 pin 10 wm0: 32-bit 33MHz PCI bus wm0: 64 words (6 address bits) MicroWire EEPROM wm0: RX packet buffer size: 48KB wm0: Ethernet address ca:33:23:2b:e6:0b wm0: 0x200002<LOCK_EECD,WOL> makphy0 at wm0 phy 1: Marvell 88E1011 Gigabit PHY, rev. 0 makphy0: Failed to access EADR. Are you an emulator? makphy0: Failed to read EXTSR. Are you an emulator?. Regard as 1000BASE-T. makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto genfb0 at pci0 dev 3 function 0: Qumranet Virtio (rev. 0x01) genfb0: framebuffer at 0xc0000000, size 1024x768, depth 32, stride 4096 genfb0: shadow framebuffer enabled, size 3072 KB wsdisplay0 at genfb0 kbdmux 1: console (default, vt100 emulation) wsmux1: connecting to wsdisplay0 drm at genfb0 not configured auich0 at pci0 dev 4 function 0: i82801AA (ICH) AC-97 Audio auich0: interrupting at ioapic0 pin 11 auich0: ac97: SigmaTel STAC9700 codec; no 3D stereo auich0: ac97: ext id 0x809<AC97_23,VRM,VRA> xhci0 at pci0 dev 5 function 0: NEC Renesas Electronics USB 3.0 Host Controller (rev. 0x03) xhci0: 64-bit DMA xhci0: interrupting at msix0 vec 0 xhci0: xHCI version 0.0 not known to be supported usb1 at xhci0: USB revision 3.0 usb2 at xhci0: USB revision 2.0 virtio0 at pci0 dev 6 function 0 virtio0: console device (id 3, rev. 0x00) viocon0 at virtio0: features: 0x10000000<INDIRECT_DESC> virtio0: allocated 8192 byte for virtqueue 0 for p0rx, size 128 virtio0: allocated 8192 byte for virtqueue 1 for p0tx, size 128 virtio0: interrupting at ioapic0 pin 10 virtio1 at pci0 dev 7 function 0 virtio1: entropy device (id 4, rev. 0x00) viornd0 at virtio1: features: 0x10000000<INDIRECT_DESC> virtio1: allocated 8192 byte for virtqueue 0 for Entropy request, size 8 virtio1: interrupting at ioapic0 pin 11 isa0 at pcib0 attimer0 at isa0 port 0x40-0x43 pcppi0 at isa0 port 0x61 spkr0 at pcppi0: PC Speaker wsbell at spkr0 not configured midi0 at pcppi0: PC speaker sysbeep0 at pcppi0 attimer0: attached to pcppi0 acpicpu0 at cpu0: ACPI CPU acpicpu0: C1: HLT, lat 0 us, pow 0 mW acpicpu1 at cpu1: ACPI CPU acpicpu2 at cpu2: ACPI CPU acpicpu3 at cpu3: ACPI CPU acpicpu4 at cpu4: ACPI CPU acpicpu5 at cpu5: ACPI CPU acpicpu6 at cpu6: ACPI CPU acpicpu7 at cpu7: ACPI CPU timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0 auich0: measured ac97 link rate at 46544 Hz, will use 48000 Hz audio0 at auich0: playback, capture, full duplex, independent audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for playback audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for recording spkr1 at audio0: PC Speaker (synthesized) wsbell at spkr1 not configured uhub0 at usb1: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 3.00/1.00, addr 0 uhub0: 4 ports with 4 removable, self powered uhub1 at usb2: NetBSD (0x0000) xHCI root hub (0x0000), class 9/0, rev 2.00/1.00, addr 0 uhub1: 4 ports with 4 removable, self powered uhub2 at usb0: NetBSD (0x0000) UHCI root hub (0x0000), class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered IPsec: Initialized Security Association Processing. uhub3 at uhub1 port 4: QEMU (0x0409) QEMU USB Hub (0x55aa), class 9/0, rev 1.10/1.01, addr 1 uhub3: 8 ports with 8 removable, self powered umass0 at uhub3 port 1 configuration 1 interface 0 umass0: QEMU (0x46f4) QEMU USB HARDDRIVE (0x0001), rev 2.00/0.00, addr 2 umass0: using SCSI over Bulk-Only scsibus0 at umass0: 2 targets, 1 lun per target sd0 at scsibus0 target 0 lun 0: <QEMU, QEMU HARDDISK, 2.5+> disk removable sd0: drive offline uhub3: autoconfiguration error: illegal enable change, port 1 uhidev0 at uhub2 port 1 configuration 1 interface 0 uhidev0: QEMU (0x0627) QEMU USB Tablet (0x0001), rev 2.00/0.00, addr 2, iclass 3/0 ums0 at uhidev0: 3 buttons and Z dir wsmouse0 at ums0 mux 0 uhub4 at uhub2 port 2: QEMU (0x0409) QEMU USB Hub (0x55aa), class 9/0, rev 1.10/1.01, addr 3 uhub4: 8 ports with 8 removable, self powered wd0 at atabus0 drive 0 wd0: <QEMU HARDDISK> wd0: drive supports 16-sector PIO transfers, LBA48 addressing wd0: 120 GB, 249660 cyl, 16 head, 63 sec, 512 bytes/sect x 251658240 sectors wd0: GPT GUID: 5af8ef39-4a9e-482a-94a0-80c8f8fb1b89 dk0 at wd0: "13f031d1-cbfc-4771-ad2d-d40bb404bb86", 262144 blocks at 64, type: msdos dk1 at wd0: "45659a4a-c7d7-4ae7-afd8-d8aef0165c53", 56366976 blocks at 262208, type: ffs dk2 at wd0: "ea477db9-63b1-4c71-a573-20d512678ef1", 16771072 blocks at 56629184, type: swap dk3 at wd0: "8a6d4a48-45a1-446f-9eeb-f62948a16781", 10485760 blocks at 73400256, type: ffs dk4 at wd0: "119b0881-f6ae-4e23-b400-3427ccb1cabe", 125829120 blocks at 83886016, type: ffs dk5 at wd0: "77305030-238e-4b04-9e2a-b19f52412a9b", 41943040 blocks at 209715136, type: ffs wd0: 32-bit data port wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100) wd0(piixide0:0:0): using PIO mode 4, DMA mode 2 (using DMA) uhidev1 at uhub4 port 1 configuration 1 interface 0 uhidev1: QEMU (0x0627) QEMU USB Mouse (0x0001), rev 2.00/0.00, addr 4, iclass 3/1 ums1 at uhidev1: 5 buttons and Z dir wsmouse1 at ums1 mux 0 uhidev2 at uhub4 port 2 configuration 1 interface 0 uhidev2: QEMU (0x0627) QEMU USB Keyboard (0x0001), rev 2.00/0.00, addr 5, iclass 3/1 ukbd0 at uhidev2 wskbd0 at ukbd0: console keyboard, using wsdisplay0 uhub4: autoconfiguration error: illegal enable change, port 1 uhub4: autoconfiguration error: illegal enable change, port 2 swwdog0: software watchdog initialized WARNING: 3 errors while detecting hardware; check system log. boot device: wd0 root on dk1 dumps on dk2 root file system type: ffs kern.module.path=/stand/amd64/10.99.12/modules wsdisplay0: screen 1 added (default, vt100 emulation) wsdisplay0: screen 2 added (default, vt100 emulation) wsdisplay0: screen 3 added (default, vt100 emulation) wsdisplay0: screen 4 added (default, vt100 emulation) -- Greg A. Woods <gwoods%acm.org@localhost> Kelowna, BC +1 250 762-7675 RoboHack <woods%robohack.ca@localhost> Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
Attachment:
pgpsU_wFEWr8S.pgp
Description: OpenPGP Digital Signature