pthread switch (was Odd KSE panic)
eischen at vigrid.com
Sun Jul 11 08:16:04 PDT 2004
On Sat, 10 Jul 2004, Julian Elischer wrote:
> On Thu, 8 Jul 2004, Daniel Eischen wrote:
> > Wewll, I just took a look at this. I had already added a preemption
> > point in pthread_mutex_unlock():
> > $ cvs log -r1.38 lib/libpthread/thread/thr_mutex.c
> > ...
> > description:
> > ----------------------------
> > revision 1.38
> > date: 2003/07/18 02:46:29; author: deischen; state: Exp; lines: +10 -6
> > Add a preemption point when a mutex or condition variable is
> > handed-off/signaled to a higher priority thread. Note that when
> > there are idle KSEs that could run the higher priority thread,
> > we still add the preemption point because it seems to take the
> > kernel a while to schedule an idle KSE. The drawbacks are that
> > threads will be swapped more often between CPUs (KSEs) and
> > that there will be an extra userland context switch (the idle
> > KSE is still woken and will probably resume the preempted
> > thread). We'll revisit this if and when idle CPU/KSE wakeup
> > times improve.
> > Note that the priority of a runnable thread must be strictly greater
> > than the currently running thread in order for preemption to occur.
> So all Drew should have to do is increas the priority of teh correct
> thread to get it to switch at that point.
More information about the freebsd-threads