OpenBSD cvs log

created 2022-11-13T02:43:10Z
begin 2022-11-07T00:00:00Z
end 2022-11-08T00:00:00Z
path src/sys
commits 15

date 2022-11-07T01:41:57Z
author guenther
files src/sys/arch/amd64/amd64/copy.S log diff annotate
src/sys/arch/amd64/amd64/efi_machdep.c log diff annotate
src/sys/arch/amd64/amd64/trap.c log diff annotate
src/sys/arch/amd64/conf/ld.script log diff annotate
message In kpageflttrap(), validate a non-NULL pcb_onfault against an array
of permitted addresses, done via .nofault* sections that end up in
the linked kernel's rodata.

ok deraadt@ kettenis@

date 2022-11-07T09:43:04Z
author mpi
files src/sys/arch/arm64/arm64/db_interface.c log diff annotate
src/sys/arch/arm64/arm64/pmap.c log diff annotate
src/sys/arch/arm64/arm64/trap.c log diff annotate
src/sys/arch/arm64/include/pmap.h log diff annotate
message Implement db_write_text/bytes() which add support for ddb(4)'s breakpoints.

Based on a diff from gerhard@, ok kettenis@

date 2022-11-07T10:21:17Z
author krw
files src/sys/kern/subr_disk.c log diff annotate
message Nuke last references to d_drivedata.

date 2022-11-07T10:33:22Z
author krw
files src/sys/sys/disklabel.h log diff annotate
message Rename unreferenced field d_drivedata to smoke out any well
hidden uses.

date 2022-11-07T10:45:39Z
author kn
files src/sys/netinet6/nd6.c log diff annotate
message Run the ND6 expiry timer without kernel lock

Added in 2017 to
Reduce contention on the NET_LOCK() by moving the nd6 address expiration
task to the `softnettq`.

This should no longer be needed thanks to sys/net/if.c r1.652 in 2022:
Activate parallel IP forwarding. Start 4 softnet tasks. Limit the
usage to the number of CPUs.

Nothing in nd6_expire() or nd6_expire_timer_update() requires protection by
the kernel lock.

The interface list and per-interface address lists remain protected by the
net lock.

Tests by Hrvoje
OK mpi

date 2022-11-07T11:22:55Z
author yasuoka
files src/sys/netinet/tcp_input.c log diff annotate
src/sys/netinet/tcp_output.c log diff annotate
src/sys/netinet/tcp_subr.c log diff annotate
src/sys/netinet/tcp_timer.c log diff annotate
src/sys/netinet/tcp_timer.h log diff annotate
src/sys/netinet/tcp_usrreq.c log diff annotate
src/sys/netinet/tcp_var.h log diff annotate
message Modify TCP receive buffer size auto scaling to use the smoothed RTT
(SRTT) instead of the timestamp option. Since the timestamp option is
disabled on some OSs (eg. Windows) or dropped by some
firewalls/routers, in such a case the window size had been fixed at
16KB, this limits throughput at very low on high latency networks.
Also replace "tcp_now" from 2HZ tick counter to binuptime in
milliseconds to calculate the SRTT better.

tested by krw matthieu jmatthew dlg djm stu stsp
ok claudio

date 2022-11-07T12:29:12Z
author dv
files src/sys/arch/amd64/amd64/vmm.c log diff annotate
message vmm(4): set RAX guest register state based on VMCB

The read/write register routines for SVM didn't acknowledge RAX in
the VMCB as the de facto RAX state. When writing gprs, vmm should
update RAX in the VMCB. When reading, it should be setting the guest
regs state based on the VMCB.

Needed for proper mmio emulation in userland.

ok mlarkin@

date 2022-11-07T12:56:38Z
author dlg
files src/sys/net/pf.c log diff annotate
src/sys/net/pf_ioctl.c log diff annotate
src/sys/net/pfvar.h log diff annotate
src/sys/net/pfvar_priv.h log diff annotate
message move pf_purge out from under the kernel lock and avoid the hogging cpu

this also avoids holding NET_LOCK too long.

the main change is done by running the purge tasks in systqmp instead
of systq. the pf state list was recently reworked so iteration over
the state can be done without blocking insertions.

however, scanning a lot of states can still take a lot of time, so
this also makes the state list scanner yield if it has spent too
much time running.

the other purge tasks for source nodes, rules, and fragments have
been moved to their own timeout/task pair to simplify the time
accounting.

in my environment, before this change pf purges often took 10 to
50ms. the softclock thread runs next to it often took a similar
amount of time, presumably because they ended up spinning waiting
for each other. after this change the pf_purges are more like 6 to
12ms, and dont block softclock. most of the variability in the runs
now seems to come from contention on the net lock.

tested by me sthen@ chris@
ok sashan@ kn@ claudio@

date 2022-11-07T14:25:44Z
author robert
files src/sys/kern/kern_sysctl.c log diff annotate
src/sys/kern/subr_autoconf.c log diff annotate
src/sys/sys/sysctl.h log diff annotate
message introduce a new kern.autoconf_serial sysctl that can be used by userland
to monitor state changes of the kernel device tree

input from dnd ok dlg@, deraadt@

date 2022-11-07T16:35:11Z
author dlg
files src/sys/net/pf.c log diff annotate
message revert "move pf_purge out from under the kernel lock".

hrvoje popovski showed me pfsync blowing up with this. im backing
it out quickly in case something else at the hackathon makes it
harder to do later.

kn@ agrees

date 2022-11-07T16:35:12Z
author dlg
files src/sys/net/pf_ioctl.c log diff annotate
src/sys/net/pfvar.h log diff annotate
src/sys/net/pfvar_priv.h log diff annotate
message revert "move pf_purge out from under the kernel lock".

hrvoje popovski showed me pfsync blowing up with this. im backing
it out quickly in case something else at the hackathon makes it
harder to do later.

kn@ agrees

date 2022-11-07T18:56:20Z
author kettenis
files src/sys/arch/arm64/dev/aplintc.c log diff annotate
message Implement the "halt" IPI.

ok patrick@

date 2022-11-07T19:07:31Z
author patrick
files src/sys/dev/ofw/ofw_misc.c log diff annotate
message The ARM SMMUv2 does actually support #iommu-cells = <2>, where the second
cell is used as a mask for SMR to match a number of IDs. So far we have
asserted that it's always 1, so loosen the restriction and pass both cells
instead of only the sid.

ok kettenis@

date 2022-11-07T20:15:44Z
author patrick
files src/sys/dev/fdt/dwpcie.c log diff annotate
message Add support for the PCIe controller on the Qualcomm SC8280XP. Thankfully
UEFI already initializes those, so we can simply just make use of that.

That said, the ctrl/dbi region isn't the first in the register list, so
instead try and look it up first and use it if available. Furthermore,
the ATU region isn't part of the ctrl/dbi region, so if we are able to
retrieve a separate reg for the ATU, use that instead. Some reshuffling
is necessary to make that work.

Tested on my Lenovo x13s and the MacchiatoBin
ok kettenis@

date 2022-11-07T20:28:23Z
author patrick
files src/sys/dev/fdt/gpiokeys.c log diff annotate
message The gpiokeys(4) 'label' property seems to be optional. If we don't have
any, don't try and print it, and especially don't error out.

Tested on Lenovo x13s (myself) and Pinebook Poop (kn@)
ok kn@