summaryrefslogtreecommitdiffstats
path: root/sys/kern/sched_4bsd.c
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2003-10-29 14:40:41 +0000
committerbde <bde@FreeBSD.org>2003-10-29 14:40:41 +0000
commit6bce6afbe7fdd1d2d6f8d6d50002cc47fdfa3b96 (patch)
treeecbcad096e75390f5b59a0145e94d46e33b45610 /sys/kern/sched_4bsd.c
parent86956669e331575dc91197028b2d219b1919b54f (diff)
downloadFreeBSD-src-6bce6afbe7fdd1d2d6f8d6d50002cc47fdfa3b96.zip
FreeBSD-src-6bce6afbe7fdd1d2d6f8d6d50002cc47fdfa3b96.tar.gz
Removed sched_nest variable in sched_switch(). Context switches always
begin with sched_lock held but not recursed, so this variable was always 0. Removed fixup of sched_lock.mtx_recurse after context switches in sched_switch(). Context switches always end with this variable in the same state that it began in, so there is no need to fix it up. Only sched_lock.mtx_lock really needs a fixup. Replaced fixup of sched_lock.mtx_recurse in fork_exit() by an assertion that sched_lock is owned and not recursed after it is fixed up. This assertion much match the one in mi_switch(), and if sched_lock were recursed then a non-null fixup of sched_lock.mtx_recurse would probably be needed again, unlike in sched_switch(), since fork_exit() doesn't return to its caller in the normal way.
Diffstat (limited to 'sys/kern/sched_4bsd.c')
-rw-r--r--sys/kern/sched_4bsd.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c
index 6480b49..1a23157 100644
--- a/sys/kern/sched_4bsd.c
+++ b/sys/kern/sched_4bsd.c
@@ -567,7 +567,6 @@ void
sched_switch(struct thread *td)
{
struct thread *newtd;
- u_long sched_nest;
struct kse *ke;
struct proc *p;
@@ -597,11 +596,9 @@ sched_switch(struct thread *td)
*/
kse_reassign(ke);
}
- sched_nest = sched_lock.mtx_recurse;
newtd = choosethread();
if (td != newtd)
cpu_switch(td, newtd);
- sched_lock.mtx_recurse = sched_nest;
sched_lock.mtx_lock = (uintptr_t)td;
td->td_oncpu = PCPU_GET(cpuid);
}
OpenPOWER on IntegriCloud