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
 > dump.

I assume I also need to remove the panicstr check in at least msleep.

Drew

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to