OpenBSD cvs log

created 2023-09-20T06:41:35Z
begin 2023-09-09T00:00:00Z
end 2023-09-10T00:00:00Z
path src/sys
commits 9

date 2023-09-09T03:03:45Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_dispatch: copy cl_func to cq_shadow.cl_func before calling it

When we add support for disestablishing clockintrs in the near future,
the current call to cl->cl_func will be in a race with free(9) on
another CPU. Copying cl_func to cq_shadow.cl_func before leaving the
mutex and then calling the copy eliminates the race.

Correcting the race has a negligible performance impact and simplifies
the forthcoming clockintr_disestablish() patch.

Requested by dlg@ back in March.

date 2023-09-09T14:23:37Z
author kevlo
files src/sys/dev/usb/if_ure.c log diff annotate
src/sys/dev/usb/usbdevs log diff annotate
message Correct TP-LINK bluetooth ID.
Reported on bugs@ by Douglas Silva <[email protected]>.

ok jsg@

date 2023-09-09T14:24:06Z
author kevlo
files src/sys/dev/usb/usbdevs.h log diff annotate
src/sys/dev/usb/usbdevs_data.h log diff annotate
message Regen

date 2023-09-09T14:50:09Z
author claudio
files src/sys/kern/kern_sig.c log diff annotate
message Fix SCHED_LOCK() leak in single_thread_set()

In the (q->p_flag & P_WEXIT) branch is a continue that did not release
the SCHED_LOCK. Refactor the code a bit to simplify the places SCHED_LOCK
is grabbed and released.

Reported-by: [email protected]
OK kettenis@

date 2023-09-09T16:20:48Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_schedule: refactor reusable code into clockintr_schedule_locked()

Move the code common to clockintr_advance() and clockintr_schedule()
from clockintr_schedule() into a new function, clockintr_schedule_locked().
In a subsequent commit we will replace that code in clockintr_advance()
with a call to clockintr_schedule_locked().

date 2023-09-09T16:34:39Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_advance: delete duplicate code, call clockintr_schedule_locked()

Replace a bunch of code in clockintr_advance() with just one call to
clockintr_schedule_locked() -- everyone's favorite hot new subroutine.

date 2023-09-09T16:59:01Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_schedule: tweak logic to eliminate early return

With the introduction of clockintr_schedule_locked(), clockintr_schedule()
is short enough that the early-return from the non-mutex path doesn't make
the function easier to read. Move the mutex path into the else branch.

date 2023-09-09T17:07:59Z
author cheloha
files src/sys/kern/kern_clockintr.c log diff annotate
message clockintr_advance: tweak logic to eliminate early-return

With the switch to clockintr_schedule_locked(), clockintr_advance() is
now much shorter and the early-return from the non-mutex path doesn't
make the function any easier to read. Move the mutex path into the else
branch and always return 'count' at the end of the function.

date 2023-09-09T18:19:03Z
author cheloha
files src/sys/kern/kern_clock.c log diff annotate
src/sys/sys/sched.h log diff annotate
message kernel: remove schedhz

Now that alpha no longer sets schedhz, schedhz is a dead variable.
Remove it.

For now, leave the schedclock() call in place in statclock(). It
still runs at its default rate of (stathz / 4).

Part of mpi@'s WIP scheduler patch. Suggested by mpi@.

Thread: https://marc.info/?l=openbsd-tech&m=169419781317781&w=2

ok mpi@