OpenBSD cvs log

created 2022-11-24T13:26:45Z
begin 2022-11-08T17:53:01Z
end 2022-11-08T17:57:47Z
path src/sys
commits 3

date 2022-11-08T17:56:38Z
author cheloha
files src/sys/arch/arm64/dev/agtimer.c log diff annotate
src/sys/arch/arm64/include/_types.h log diff annotate
src/sys/arch/arm64/include/cpu.h log diff annotate
message arm64: switch to clockintr(9)

Switch arm64 to the clockintr(9) subsystem.

- Remove the custom per-CPU clock interrupt schedule from agtimer(4).
- Remove the custom randomized statclock() pieces from agtimer(4).
- Add agtimer_rearm(), agtimer_trigger(), and wire up agtimer_intrclock.

There is one wart:

- The AArch64 spec says that a value written to CNTV_TVAL_EL0 is
"treated as a signed 32-bit integer" [1]. kettenis@ doesn't know
what to make of this. I'm capping the value at INT32_MAX for
now. It's possible I am misreading this, though.

Tested by kettenis@ on his Apple M1 mini. Tested by me on my
Raspberry Pi 4B.

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

[1] "Arm Architecture Reference Manual for A-profile architecture"
issue I.a, section D17.11.27 ("CNTV_TVAL_EL0").

ok kettenis@

date 2022-11-08T17:57:14Z
author kn
files src/sys/net/if.c log diff annotate
message Push kernel lock inside ifioctl_get()

After this mechanical move, I can unlock the individual SIOCG* in there.

OK mvs

date 2022-11-08T17:57:47Z
author kn
files src/sys/net/if.c log diff annotate
message Unlock SIOCIFGCLONERS

ifconfig(8) -C is the only user in base and the if_clone_attach() comment
explains how this list is being built during autoconf(9).

After that it is only ever read. Multiple threads may traverse the list in
parallel and reading the `int' count is atomic.

OK mvs