OpenBSD cvs log

created 2021-01-09T22:05:37Z
begin 2021-01-08T00:00:00Z
end 2021-01-09T00:00:00Z
path src/sys
commits 5

date 2021-01-08T09:29:04Z
author visa
files src/sys/kern/sys_generic.c log diff annotate
message Revert "Implement select(2) and pselect(2) on top of kqueue."

The use of kqueue as backend has introduced a significant regression
in the performance of select(2), so go back to using the original code.

Some additional management overhead is to be expected when using kqueue.
However, the overhead of the current implementation is too high.

Reported by bluhm@ on bugs@

date 2021-01-08T11:23:57Z
author visa
files src/sys/kern/subr_log.c log diff annotate
message Fix boot-time crash on sparc64

On sparc64, initmsgbuf() is invoked before curcpu() is usable
on the boot processor. Consequently, it is unsafe to use mutexes
during the message buffer initialization. Avoid such use by skipping
log_mtx when appending a newline from initmsgbuf().

Use mbp instead of msgbufp as the buffer argument to the putchar routine
for consistency.

Bug reported and fix suggested by miod@

date 2021-01-08T12:29:16Z
author visa
files src/sys/kern/kern_event.c log diff annotate
message Lock kernel before raising SPL in klist_lock()

This prevents unwanted spinning with interrupts disabled.

At the moment, this code is only invoked through klist_invalidate()
and the callers should already hold the kernel lock. Also, one could
argue that in MP-unsafe contexts klist_lock() should only assert for
the kernel lock.

date 2021-01-08T23:02:09Z
author kettenis
files src/sys/dev/pci/drm/drm_linux.c log diff annotate
src/sys/dev/pci/drm/include/linux/mm.h log diff annotate
src/sys/dev/pci/drm/include/linux/vmalloc.h log diff annotate
message Bring the emulated Linux memory allocation interfaces more in line with
what Linux does. Let vmalloc() use km_alloc(9) instead of malloc(9) and
let kvmalloc() only use malloc(9) for small (less than a page) allocations
and atomic allocations. This should reduce the pressure on the
"interrupt-safe" map.

ok jsg@

date 2021-01-08T23:31:53Z
author dlg
files src/sys/net/if_bridge.c log diff annotate
message don't check local carp addresses as part of the antispoof checks.

bridge(4) drops packets coming from somewhere else that have a
source MAC address that's owned by one of the interfaces that's a
member of the bridge. because this check was done with bridge_ourether,
it included the addresses of active carp interfaces hanging off
these member interfaces. this meant if the local machine is the
carp master while another machine is trying to preempt it by sending
hellos, the packets from the other machine were dropped because the
local one is already the master.

carp roles are supposed to move around a l2 network, so another
host sending a packet with a carp mac address is actually normal
and necessary.

found by and fix tested by stsp@
ok stsp@ claudio@