OpenBSD cvs log

created 2023-06-02T16:02:48Z
begin 2023-05-13T00:00:00Z
end 2023-05-14T00:00:00Z
path src/sys
commits 5

date 2023-05-13T09:24:59Z
author mpi
files src/sys/uvm/uvm_aobj.c log diff annotate
src/sys/uvm/uvm_aobj.h log diff annotate
src/sys/uvm/uvm_page.c log diff annotate
src/sys/uvm/uvm_pager.c log diff annotate
message Put back in the simplification of the aiodone daemon.

Previous "breakage" of the swap on arm64 has been found to be an issue
on one machine the rockpro/arm64 related to a deadlock built into the
sdmmc(4) stack interacting with swapping code both running under
KERNEL_LOCK().

This issue is easily reproducible on -current and entering swap when
building LLVM on a rockpro crashes the machine by memory corruption.

Tested by mlarkin@ on octeon & i386, by myself on amd64 & arm64 and by
sthen@ on i386 port bulk.

ok beck@ some time ago.

Previous commit message:

Simplify the aiodone daemon which is only used for async writes.

- Remove unused support for asynchronous read, including error conditions

- Grab the proper lock for each page that has been written to swap. This
allows to enable an assertion in uvm_page_unbusy().

- Move the uvm_anon_release() call outside of uvm_page_unbusy() and
assert for the different anon cases.

ok beck@, kettenis@

date 2023-05-13T13:35:17Z
author bluhm
files src/sys/net/if_bridge.c log diff annotate
src/sys/net/if_gre.c log diff annotate
src/sys/net/pf.c log diff annotate
src/sys/netinet/in.h log diff annotate
src/sys/netinet/ip_divert.c log diff annotate
src/sys/netinet/ip_output.c log diff annotate
src/sys/netinet/ipsec_input.c log diff annotate
message Instead of implementing IPv4 header checksum creation everywhere,
introduce in_hdr_cksum_out(). It is used like in_proto_cksum_out().
OK claudio@

date 2023-05-13T13:35:18Z
author bluhm
files src/sys/netinet/tcp_output.c log diff annotate
src/sys/netmpls/mpls_input.c log diff annotate
src/sys/netmpls/mpls_output.c log diff annotate
message Instead of implementing IPv4 header checksum creation everywhere,
introduce in_hdr_cksum_out(). It is used like in_proto_cksum_out().
OK claudio@

date 2023-05-13T16:27:59Z
author bluhm
files src/sys/netinet6/nd6.c log diff annotate
message Finally remove the kernel lock from IPv6 neighbor discovery. ND6
entries in rt_llinfo are protected either by exclusive netlock or
the ND6 mutex. The performance critical lookup path in nd6_resolve()
uses shared netlock, but is not lockless. In contrast to ARP it
grabs the mutex also in the common case.
tested by Hrvoje Popovski; with and OK kn@

date 2023-05-13T23:15:28Z
author dv
files src/sys/dev/vmm/vmm.c log diff annotate
src/sys/dev/vmm/vmm.h log diff annotate
message vmm(4)/vmd(8): switch to anonymous shared mappings.

While splitting out emulated virtio network and block devices into
separate processes, I originally used named mappings via shm_mkstemp(3).
While this functionally achieved the desired result, it had two
unintended consequences:

1) tearing down a vm process and its child processes required
excessive locking as the guest memory was tied into the VFS layer.

2) it was observed by mlarkin@ that actions in other parts of the
VFS layer could cause some of the guest memory to flush to storage,
possibly filling /tmp.

This commit adds a new vmm(4) ioctl dedicated to allowing a process
request the kernel share a mapping of guest memory into its own vm
space. This requires an open fd to /dev/vmm (requiring root) and
both the "vmm" and "proc" pledge(2) promises. In addition, the caller
must know enough about the original memory ranges to reconstruct them
to make the vm's ranges.

Tested with help from Mischa Peters.

ok mlarkin@