John Baldwin writes:
> I like my second, it is easier, just add this to choosethread:
Don't all these compares in the critical path add up?
> if (panicstr &&
> ((td->td_proc->p_flag & P_SYSTEM) == 0 &&
> (td->td_flags & TDF_INPANIC) == 0))
> goto top;
> (Do this just before the td_state change and return()).
> You of couse need to set TDF_INPANIC when setting panicstr. This
> might mean that we break the restartable panics case. In that
> case you would just change this so that runq_choose() actually does
> the work to ignore threads on the run queue instead which eliminates
> the loop and ugly goto and preserves the runqueue state in the core
I assume I also need to remove the panicstr check in at least msleep.
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message