libkse -> libpthread
Igor Sysoev
is at rambler-co.ru
Tue Apr 22 01:18:17 PDT 2003
On Mon, 21 Apr 2003, Daniel Eischen wrote:
> On Mon, 21 Apr 2003, Terry Lambert wrote:
>
> > Jeff Roberson wrote:
> > > On Mon, 21 Apr 2003, Daniel Eischen wrote:
> > > > Since libkse seems to be generally useful, anyone mind if I
> > > > go back to installing it as libpthread?
> > >
> > > There is some question over whether kse or thr will be the default
> > > threading implementation for 5.1. I think this should be discussed before
> > > we decide on what lib uses libpthread.
> >
> > Isn't libthr really just libkse with N = M?
>
> Yes, I wasn't going to bring that up, though.
>
> > These should behave exactly the same, right? It should even be
> > possible to drop the UTS out of the picture for everything but
> > signal handling, I think (i.e. it would never get upcalled) in
> > the 1:1 case, if this were done?
>
> Libpthread can be made to behave the same as libthr just
> by forcing every thread to be scope system. Currently,
> the implementation for scope system threads does have
> a small amount of overhead in that they still get upcalls
> after the thread blocks in the kernel (in this case
> the KSE just reenters the kernel with kse_release()
> and waits for the thread to become unblocked). These
> KSEs also require a small stack separate from the
> thread's stack. The code is in place (in the UTS) to
> not require a separate stack and not get any upcalls
> for these threads, but we just need a bit more
> kernel work to optimize this overhead away.
But why is not it implemented via setting kse_mailbox.km_curthread to NULL ?
As I understand it's way to disable upcalls when UTS is preempted
by the kernel (the time slice ended, the page in operation, etc.)
i.e. UTS should always run as 1:1 thread.
Had it been changed ? How is UTS protected now ?
Igor Sysoev
http://sysoev.ru/en/
More information about the freebsd-threads
mailing list