]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
schedlock 1/4
authorjeff <jeff@FreeBSD.org>
Sun, 15 Dec 2019 21:11:15 +0000 (21:11 +0000)
committerjeff <jeff@FreeBSD.org>
Sun, 15 Dec 2019 21:11:15 +0000 (21:11 +0000)
commitbf925a1e495ba90a3064aa882619930b782ba9ab
tree0325e01f4affe5d9ef25e68fae1a7cbd5d2ebde9
parent1f84b282ffbf86c02a496ac95b7170aae24d2d97
schedlock 1/4

Eliminate recursion from most thread_lock consumers.  Return from
sched_add() without the thread_lock held.  This eliminates unnecessary
atomics and lock word loads as well as reducing the hold time for
scheduler locks.  This will eventually allow for lockless remote adds.

Discussed with: kib
Reviewed by: jhb
Tested by: pho
Differential Revision: https://reviews.freebsd.org/D22626
27 files changed:
sys/cddl/compat/opensolaris/sys/proc.h
sys/compat/linux/linux_fork.c
sys/compat/linuxkpi/common/src/linux_kthread.c
sys/dev/ocs_fc/ocs_os.c
sys/kern/init_main.c
sys/kern/kern_clock.c
sys/kern/kern_fork.c
sys/kern/kern_intr.c
sys/kern/kern_kthread.c
sys/kern/kern_mutex.c
sys/kern/kern_resource.c
sys/kern/kern_sig.c
sys/kern/kern_synch.c
sys/kern/kern_thr.c
sys/kern/kern_thread.c
sys/kern/sched_4bsd.c
sys/kern/sched_ule.c
sys/kern/subr_gtaskqueue.c
sys/kern/subr_pcpu.c
sys/kern/subr_sleepqueue.c
sys/kern/subr_taskqueue.c
sys/kern/subr_turnstile.c
sys/mips/nlm/cms.c
sys/sys/proc.h
sys/sys/resourcevar.h
sys/sys/sched.h
sys/vm/vm_swapout.c