OpenBSD cvs log

created 2022-06-18T23:55:34Z
begin 2022-06-12T00:00:00Z
end 2022-06-13T00:00:00Z
path src/sys
commits 5

date 2022-06-12T10:34:36Z
author visa
files src/sys/kern/kern_event.c log diff annotate
message kqueue: Fix missing wakeup

While one thread is running kqueue_scan(), another thread can begin
scanning the same kqueue, observe that the event queue is empty, and
go to sleep. If the first thread re-inserts a knote for re-processing,
the second thread can miss the newly pending event. Wake up the kqueue
after a re-insert to correct this.

This fixes a Go test hang that jsing@ tracked down to kqueue.

Tested in snaps for a week.

OK jsing@ mpi@

date 2022-06-12T10:36:04Z
author visa
files src/sys/kern/kern_synch.c log diff annotate
message Allow sleeping while clearing a sleep timeout

Since sys/kern/kern_timeout.c r1.84, timeout_barrier() has used sleeping
with soft-interrupt-driven timeouts. Adjust the sleep machinery so that
the timeout clearing can block in sleep_finish().

This adds one step of recursion inside sleep_finish(). However, the
sleep queue handling does not recurse because sleep_finish() completes
it before calling timeout_del_barrier().

This fixes the following panic:

panic: kernel diagnostic assertion "(p->p_flag & P_TIMEOUT) == 0" failed: file "sys/kern/kern_synch.c", line 373
Stopped at db_enter+0x10: popq %rbp
db_enter() at db_enter+0x10
panic() at panic+0xbf
__assert() at __assert+0x25
sleep_setup() at sleep_setup+0x1d8
cond_wait() at cond_wait+0x46
timeout_barrier() at timeout_barrier+0x109
timeout_del_barrier() at timeout_del_barrier+0xa2
sleep_finish() at sleep_finish+0x16d
tsleep() at tsleep+0xb2
sys_nanosleep() at sys_nanosleep+0x12d
syscall() at syscall+0x374

OK mpi@ dlg@

date 2022-06-12T10:51:55Z
author kettenis
files src/sys/arch/riscv64/conf/GENERIC log diff annotate
src/sys/arch/riscv64/conf/files.riscv64 log diff annotate
src/sys/arch/riscv64/dev/stfclock.c log diff annotate
src/sys/arch/riscv64/dev/stftemp.c log diff annotate
message Add stftemp(4), a driver for the temperature sensor integrated on the
StarFive JH7100 SoC.

ok jsg@

date 2022-06-12T16:00:12Z
author kettenis
files src/sys/arch/arm64/conf/GENERIC log diff annotate
src/sys/arch/arm64/conf/RAMDISK log diff annotate
src/sys/arch/arm64/conf/files.arm64 log diff annotate
src/sys/arch/arm64/dev/aplns.c log diff annotate
src/sys/arch/arm64/dev/aplsart.c log diff annotate
src/sys/arch/arm64/dev/aplsmc.c log diff annotate
src/sys/arch/arm64/dev/rtkit.c log diff annotate
src/sys/arch/arm64/dev/rtkit.h log diff annotate
message The NVMe firmware distributed with the macOS 13 developer beta does not
like some of the shortcuts we've taken in the code that talks to RTKit.
In particular it does not like our NAK of the request for ioreport buffers.
So allocate the requested buffers and ACK the request instead.

However, the hardware implements a address filter between the coprocessor
that the firmware runs on and main memory. So we have to add a mapping
into this address filter such that the firmware can access these buffers.
Support for this address filter is implemented in a new aplsart(4) driver.

ok dlg@

date 2022-06-12T19:48:12Z
author dv
files src/sys/arch/amd64/amd64/vmm.c log diff annotate
message vmm(4): remove vm teardown from vcpu run path

Remove the calling of vm_teardown from the code path in vm_run after
vmm has exited the vm/vcpu and is on its way back to userland/vmd(8).
vmd(8) and other vmm(4) users should use the VMM_IOC_TERM ioctl(2)
instead.

Help testing from Mischa Peters, OK mlarkin@