From: Alexander Bluhm Subject: Re: Sysupgrade on i386 vmm to current snapshot hangs on boot into upgrade kernel To: Brent Cook Cc: Mike Larkin , tech@openbsd.org Date: Tue, 7 Apr 2026 11:35:57 +0200 I am running this diff for two days in my automatic setup. Alpine Linux, OpenBSD amd64 and OpenBSD i386 work. bluhm On Sun, Apr 05, 2026 at 01:08:51PM -0500, Brent Cook wrote: > diff --git a/usr.sbin/vmd/i8253.c b/usr.sbin/vmd/i8253.c > index 9e32d9382b6..091716a2f32 100644 > --- a/usr.sbin/vmd/i8253.c > +++ b/usr.sbin/vmd/i8253.c > @@ -262,12 +262,14 @@ vcpu_exit_i8253(struct vm_run_params *vrp) > ticks % i8253_channel[sel].start; > } else > i8253_channel[sel].olatch = 0; > + i8253_channel[sel].last_r = 2; > goto ret; > } else if (rw != TIMER_16BIT) { > log_warnx("%s: i8253 PIT: unsupported counter " > "%d rw mode 0x%x selected", __func__, > sel, (rw & TIMER_16BIT)); > } > + i8253_channel[sel].last_w = 0; > i8253_channel[sel].mode = (out_data & 0xe) >> 1; > > goto ret; > @@ -293,6 +295,9 @@ vcpu_exit_i8253(struct vm_run_params *vrp) > if (i8253_channel[sel].start == 0) > i8253_channel[sel].start = 0xffff; > > + clock_gettime(CLOCK_MONOTONIC, > + &i8253_channel[sel].ts); > + > DPRINTF("%s: channel %d reset, mode=%d, " > "start=%d\n", __func__, > sel, i8253_channel[sel].mode, >