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

Reply via email to