OpenBSD cvs log

created 2024-04-21T00:22:28Z
begin 2024-04-17T00:00:00Z
end 2024-04-18T00:00:00Z
path src/sys
commits 5

date 2024-04-17T08:36:30Z
author florian
files src/sys/netinet6/in6.c log diff annotate
message Revert previous, it breaks IPv6 on loopback interfaces.

Reported by bket & anton

date 2024-04-17T09:41:44Z
author claudio
files src/sys/kern/kern_resource.c log diff annotate
message dogetrusage() must be called with the KERNEL_LOCK held for now.
OK mpi@

date 2024-04-17T13:12:58Z
author mpi
files src/sys/arch/amd64/include/cpu.h log diff annotate
src/sys/arch/arm64/include/cpu.h log diff annotate
src/sys/arch/i386/include/cpu.h log diff annotate
src/sys/uvm/uvm_page.c log diff annotate
src/sys/uvm/uvm_pdaemon.c log diff annotate
src/sys/uvm/uvm_percpu.h log diff annotate
src/sys/uvm/uvm_pmemrange.c log diff annotate
src/sys/uvm/uvm_pmemrange.h log diff annotate
src/sys/uvm/uvmexp.h log diff annotate
message Add per-CPU caches to the pmemrange allocator.

The caches are used primarily to reduce contention on uvm_lock_fpageq() during
concurrent page faults. For the moment only uvm_pagealloc() tries to get a
page from the current CPU's cache. So on some architectures the caches are
also used by the pmap layer.

Each cache is composed of two magazines, design is borrowed from jeff bonwick
vmem's paper and the implementation is similar to the one of pool_cache from
dlg@. However there is no depot layer and magazines are refilled directly by
the pmemrange allocator.

Tested by robert@, claudio@ and Laurence Tratt.

ok kettenis@

date 2024-04-17T13:17:31Z
author mpi
files src/sys/uvm/uvm_amap.c log diff annotate
message Remove a micro optimization to free pages in batch in amap_wipeout().

The contention on uvm_lock_fpageq() is now reduced by using per-CPU caches,
so we want to put pages on the cache and not give them back directly to the
allocator.

ok kettenis@

date 2024-04-17T20:48:51Z
author bluhm
files src/sys/netinet/in_pcb.c log diff annotate
src/sys/netinet/in_pcb.h log diff annotate
src/sys/netinet/ip_ipsp.h log diff annotate
src/sys/netinet/ip_output.c log diff annotate
src/sys/netinet/ip_spd.c log diff annotate
src/sys/netinet/ip_var.h log diff annotate
src/sys/netinet/raw_ip.c log diff annotate
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/udp_usrreq.c log diff annotate
src/sys/netinet6/ip6_output.c log diff annotate
src/sys/netinet6/ip6_var.h log diff annotate
src/sys/netinet6/raw_ip6.c log diff annotate
src/sys/netinet6/udp6_output.c log diff annotate
message Use struct ipsec_level within inpcb.

Instead of passing around u_char[4], introduce struct ipsec_level
that contains 4 ipsec levels. This provides better type safety.
The embedding struct inpcb is globally visible for netstat(1), so
put struct ipsec_level outside of #ifdef _KERNEL.

OK deraadt@ mvs@