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.
This commit is contained in:
parent
6b61c155e6
commit
9493183e77
@ -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) {
|
||||
@ -457,6 +458,7 @@ critical_exit(void)
|
||||
mi_switch(SW_INVOL, NULL);
|
||||
mtx_unlock_spin(&sched_lock);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
td->td_critnest = 0;
|
||||
cpu_critical_exit();
|
||||
|
Loading…
x
Reference in New Issue
Block a user