tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [RFC][PATCH] _UC_TLSBASE for all ports



On Sun, Aug 12, 2012 at 10:02:48AM +0200, Martin Husemann wrote:
 > So, I see various things coming together in this thread, and I would
 > suggest to fix them all with a change beyound what Emmanuel originaly
 > proposed:
 > 
 >  - the pthread_self() usage and the binding to a register is a property of
 >    our libpthread implementation, so it should overwrite setcontext and
 >    swapcontext with its own implementation, and prevent changing of
 >    the pthread_self() register (by clearing the _UC_TSLBASE flag before
 >    passing the context on to the libc version or something)
 > 
 >  - for that to work, we need to do what Emmanuel originaly proposed
 > 
 >  - but also the glusterffs folks should be asked to provide an optional,
 >    pure pthread based thread pool implementation for portability reasons,
 >    which will gain the same performance on NetBSD as the swapcontext based
 >    one.
 > 
 >  - however, we should bring back (under slightly different names, and in 
 > libc)
 >    the old pure userland setcontext (and friends) that we used to have
 >    in the N:M libpthread. We have the code for all archs, it is tested, and
 >    it is usefull for situations like this (and the R runtime in pkgsrc, hi
 >    Ignatios!)
 > 
 >  - manu could then go on and use the new lightweight context functions from
 >    the previous point to create an improved version of the swapcontext based
 >    threadpool and speed up glusterffs on NetBSD again

This seems the right approach to me.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index