From: Brent Cook Subject: Re: Sysupgrade on i386 vmm to current snapshot hangs on boot into upgrade kernel To: Alexander Bluhm Cc: Mike Larkin , tech@openbsd.org Date: Sun, 5 Apr 2026 04:58:11 -0500 On Tue, Mar 31, 2026 at 1:35 PM Alexander Bluhm wrote: > On Tue, Mar 31, 2026 at 09:30:30AM -0700, Mike Larkin wrote: > > rebuild the host kernel with HZ=1000 and see if running that makes the > problem > > go away. > > I have option HZ=1000 in host's sys/conf/GENERIC now. It does not help. > Guest's GENERIC is unmodified. > > When the i386 guest boots, its GENERIC either says > cpu0: AMD EPYC 73F3 16-Core Processor ("AuthenticAMD" 686-class, 512KB L2 > cache) 3.50 GHz, 19-01-01 > or > cpu0: AMD EPYC 73F3 16-Core Processor ("AuthenticAMD" 686-class, 512KB L2 > cache) 74 MHz, 19-01-01 > > Same thing here, but this is a clue why RAMDISK_CD hangs but not GENERIC are hanging, at least for me. Adding pvclock0 allows RAMDISK_CD to boot 100% of the time in my local vmm machine. diff --git a/sys/arch/i386/conf/RAMDISK_CD b/sys/arch/i386/conf/RAMDISK_CD index c00f6dcbbb4..24bd4e465a9 100644 --- a/sys/arch/i386/conf/RAMDISK_CD +++ b/sys/arch/i386/conf/RAMDISK_CD @@ -28,6 +28,7 @@ config bsd root on rd0a swap on rd0b and wd0b and sd0b mainbus0 at root pvbus0 at mainbus0 # Paravirtual device bus +pvclock0 at pvbus? # KVM/VMD paravirtual clock acpi0 at bios? #acpitimer* at acpi? Previously, I was adding debug messages to see where the first hang occurs. It was around the first call to biowait, which makes sense if timer interrupts are not setup correctly. When I occasionally did get a successful boot before, the core would correctly calibrate at 4 Ghz : OpenBSD 7.9-beta (RAMDISK_CD) #21: Sat Apr 4 19:47:32 CDT 2026 bcook@coyote.my.domain:/usr/src/sys/arch/i386/compile/RAMDISK_CD real mem = 3220688896 (3071MB) avail mem = 3151634432 (3005MB) random: good seed from bootblocks mainbus0 at root bios0 at mainbus0: date 06/23/99, BIOS32 rev. 0 @ 0xfefc2, SMBIOS rev. 2.4 @ 0xf2220 (10 entries) bios0: vendor SeaBIOS version "1.16.3p1-OpenBSD-vmm" date 01/01/2011 bios0: OpenBSD VMM acpi at bios0 function 0x0 not configured pcibios at bios0 function 0x1a not configured bios0: ROM list: 0xef000/0x1000! cpu0 at mainbus0: (uniprocessor) cpu0: Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz ("GenuineIntel" 686-class) 83 MHz, 06-3c-03 cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,CX8,SEP,PGE,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,PCLMUL,SSSE3,FMA3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,LONG,LAHF,ABM,ITSC,FSGSBASE,BMI1,AVX2,SMEP,BMI2,ERMS,MD_CLEAR,XSAVEOPT,MELTDOWN pvbus0 at mainbus0: KVM, OpenBSD pci0 at mainbus0 bus 0: configuration mode 1 (no bios) pchb0 at pci0 dev 0 function 0 "OpenBSD VMM Host" rev 0x00 virtio0 at pci0 dev 1 function 0 "Qumranet Virtio 1.x RNG" rev 0x01 viornd0 at virtio0 virtio0: irq 3 virtio1 at pci0 dev 2 function 0 "Qumranet Virtio 1.x Network" rev 0x01 vio0 at virtio1: 1 queue, address fe:e1:bb:d1:7a:39 virtio1: irq 5 virtio2 at pci0 dev 3 function 0 "Qumranet Virtio 1.x Storage" rev 0x01 vioblk0 at virtio2 virtio2: irq 6 scsibus0 at vioblk0: 1 targets sd0 at scsibus0 targ 0 lun 0: sd0: 51200MB, 512 bytes/sector, 104857600 sectors virtio3 at pci0 dev 4 function 0 "OpenBSD VMM Control" rev 0x00 vmmci0 at virtio3 virtio3: irq 7 isa0 at mainbus0 isadma0 at isa0 com0 at isa0 port 0x3f8/8 irq 4: ns8250, no fifo com0: console pcdisplay0 at isa0 port 0x3d0/16 iomem 0xb8000/32768 wsdisplay0 at pcdisplay0 mux 1: console (80x25, vt100 emulation) npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16 softraid0 at root scsibus1 at softraid0: 256 targets sr: dk sd0 devno=0x402 flags=0x3 sr: dk rd0 devno=0x1102 flags=0x3 sr: wait done slept=0 sr: calling boot_assembly sr: bootprobe open rawdev=0xd02 sd0: sdopen: scsi_start sd0: sdopen: scsi_start done sd0: sdopen: scsi_test_unit_ready sd0: sdopen: scsi_test_unit_ready done error=0 sd0: sdopen: sd_get_parms sd0: sdopen: sd_get_parms done sd0: sdopen: sdgetdisklabel sd0: sdgetdisklabel: enter lp=0xd63a6000 sd0: sdgetdisklabel: bzero done sd0: sdgetdisklabel: type set sd0: sdgetdisklabel: packname set sd0: sdgetdisklabel: checksum done sd0: sdgetdisklabel: calling readdisklabel dev=0xd02 readdisklabel: enter dev=0xd02 readdisklabel: initdisklabel done secsize=512 secpercyl=16065 readdisklabel: calling geteblk secsize=512 readdisklabel: calling readdoslabel bp=0xd6363f18 readdisksector: calling strat blkno=0 sdstrategy: enter dev=0xd02 blkno=0 sdstart: enter readdisksector: strat returned, calling biowait