Index | Thread | Search

From:
Alexander Bluhm <bluhm@openbsd.org>
Subject:
Re: Sysupgrade on i386 vmm to current snapshot hangs on boot into upgrade kernel
To:
Mike Larkin <mlarkin@nested.page>
Cc:
tech@openbsd.org
Date:
Tue, 31 Mar 2026 20:33:42 +0200

Download raw body.

Thread
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

The amd64 hosts runs with 3.5 GHz
cpu0: AMD EPYC 73F3 16-Core Processor, 3500.00 MHz, 19-01-01, patch 0a0011db

If the guest has the wrong MHz value, this command causes the hang

root@ot69:.../~# sysctl kern.timecounter.hardware=i8254
kern.timecounter.hardware: pvclock0 -> i8254
root@ot69:.../~#

After injecting an NMI it says

NMI ... going to debugger
Stopped at      i8254_get_timecount+0xd:        movzbl  %al,%edx
ddb>
ddb> trace
i8254_get_timecount(d0f51850) at i8254_get_timecount+0xd
nanouptime(f6615d38) at nanouptime+0x23
timeout_hardclock_update() at timeout_hardclock_update+0x1f9
clockintr_hardclock(d0f4549c,f6615de4,0) at clockintr_hardclock+0xc8
clockintr_dispatch(f6615de4) at clockintr_dispatch+0x1ed
clockintr(f6615de4) at clockintr+0x3f
intr_handler(f6615de4,d5889dc0) at intr_handler+0x18
Xintr_legacy0_untramp() at Xintr_legacy0_untramp+0xfb
cpu_idle_cycle() at cpu_idle_cycle+0xf

bluhm