CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2021/10/12 01:38:22
Modified files: sys/uvm : uvm_fault.c uvm_pager.h uvm_vnode.c Log message: Fix the deadlock between uvn_io() and uvn_flush() by restarting the fault. Do not allow a faulting thread to sleep on a contended vnode lock to prevent lock ordering issues with upcoming per-uobj lock. Also reduce the sleep value for VM_PAGER_AGAIN from 1sec to 5nsec to not add visible slowdown when starting a multi-threaded application with threads that fault on the same vnode (chromium, firefox, etc). Tested by anton@, tb@, robert@ and gnezdo@ ok anton@, tb@ Reported-by: syzbot+e63407b35dff08dbe...@syzkaller.appspotmail.com