rtprio and kse

Daniel Eischen eischen at vigrid.com
Sun Jun 29 17:22:24 PDT 2003


On Mon, 30 Jun 2003, Petri Helenius wrote:
> > The rtprio() call affects the KSEG in which the thread runs.
> > So it is the KSEG that has the realtime priority, and all
> > threads that run in that KSEG will be affected.  This doesn't
> > affect other KSEGs, so if you are creating system scope
> > threads (each has their own KSEG and KSE), they will only
> > be affected if you call rtprio() from their threads.
> > 
> So if I interpret this correctly, to achieve the "expected" result,

What is the expected result?  I expect the expected result
to be exactly the way that libkse works.  If you were to
do the same thing in Solaris (pthreads), it would behave
just like libkse works: it affects the LWP, not the thread,
so any threads running in the LWP would benefit from
the priority change.

> one should link with -lthr, not -lkse? Expected result being 
> priorities apply only to threads which call for it. 

If you want (real-time) priority to apply only to the thread
that calls it, then create those threads as scope system
threads.

> Does -lthr have any (known) issues with spinlocks like linuxthreads has, where
> a thread with rtprio going into a spinlock might monopolize the CPU
> and the other thread never gets a quantum to actually release the lock?

Libpthread(^Wlibkse) has no such problems with mixing KSEs with
different kernel priorities.

-- 
Dan Eischen



More information about the freebsd-threads mailing list