summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2004-07-22 14:32:48 +0000
committerscottl <scottl@FreeBSD.org>2004-07-22 14:32:48 +0000
commit9c40ab7a35a0df2f230c65ce9fa4e4c7c8b1a05e (patch)
treea525734e13d1b68ee4fbf4a340b7684a8fa2f4ed /sys
parent8295db903869b2df8493758b549ce7a7ba1907eb (diff)
downloadFreeBSD-src-9c40ab7a35a0df2f230c65ce9fa4e4c7c8b1a05e.zip
FreeBSD-src-9c40ab7a35a0df2f230c65ce9fa4e4c7c8b1a05e.tar.gz
Disable the PREEMPTION-enabled code in critical_exit() that encourages
switching to a different thread. This is just a hack to try to improve stability some more, but likely points closer to the real culprit.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_switch.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c
index 5183a35..4822c5e 100644
--- a/sys/kern/kern_switch.c
+++ b/sys/kern/kern_switch.c
@@ -450,6 +450,7 @@ critical_exit(void)
KASSERT(td->td_critnest != 0,
("critical_exit: td_critnest == 0"));
if (td->td_critnest == 1) {
+#if 0
#ifdef PREEMPTION
mtx_assert(&sched_lock, MA_NOTOWNED);
if (td->td_pflags & TDP_OWEPREEMPT) {
@@ -458,6 +459,7 @@ critical_exit(void)
mtx_unlock_spin(&sched_lock);
}
#endif
+#endif
td->td_critnest = 0;
cpu_critical_exit();
} else {
OpenPOWER on IntegriCloud