Now that mmap/munmap/mprotect(2) are no longer creating contention it is possible to see that sched_yield(2) is one of the syscalls waiting for the KERNEL_LOCK() to be released. However this is no longer necessary.
Traversing `ps_threads' require either the KERNEL_LOCK() or the SCHED_LOCK() and we are holding both in this case. So let's drop the requirement for the KERNEL_LOCK(). ok? Index: kern/syscalls.master =================================================================== RCS file: /cvs/src/sys/kern/syscalls.master,v retrieving revision 1.235 diff -u -p -r1.235 syscalls.master --- kern/syscalls.master 8 Nov 2022 11:05:57 -0000 1.235 +++ kern/syscalls.master 8 Nov 2022 13:09:10 -0000 @@ -531,7 +531,7 @@ #else 297 UNIMPL #endif -298 STD { int sys_sched_yield(void); } +298 STD NOLOCK { int sys_sched_yield(void); } 299 STD NOLOCK { pid_t sys_getthrid(void); } 300 OBSOL t32___thrsleep 301 STD NOLOCK { int sys___thrwakeup(const volatile void *ident, \