CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2023/05/13 03:24:59
Modified files: sys/uvm : uvm_aobj.c uvm_aobj.h uvm_page.c uvm_pager.c Log 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@