From dcedf89d63b0d96d2353f93d54c6fd039ce6bc54 Mon Sep 17 00:00:00 2001 From: jhb Date: Sat, 30 Jun 2001 03:11:26 +0000 Subject: Make the schedlock saved critical section state a per-thread property. --- sys/kern/kern_synch.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'sys/kern/kern_synch.c') diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c index 95b98d2..ce6adb5 100644 --- a/sys/kern/kern_synch.c +++ b/sys/kern/kern_synch.c @@ -821,6 +821,7 @@ mi_switch() #if 0 register struct rlimit *rlim; #endif + critical_t sched_crit; u_int sched_nest; mtx_assert(&sched_lock, MA_OWNED | MA_NOTRECURSED); @@ -881,12 +882,14 @@ mi_switch() PCPU_SET(switchtime, new_switchtime); CTR3(KTR_PROC, "mi_switch: old proc %p (pid %d, %s)", p, p->p_pid, p->p_comm); + sched_crit = sched_lock.mtx_savecrit; sched_nest = sched_lock.mtx_recurse; curproc->p_lastcpu = curproc->p_oncpu; curproc->p_oncpu = NOCPU; clear_resched(curproc); cpu_switch(); curproc->p_oncpu = PCPU_GET(cpuid); + sched_lock.mtx_savecrit = sched_crit; sched_lock.mtx_recurse = sched_nest; sched_lock.mtx_lock = (uintptr_t)curproc; CTR3(KTR_PROC, "mi_switch: new proc %p (pid %d, %s)", p, p->p_pid, -- cgit v1.1