rtprio and kse

Julian Elischer julian at elischer.org
Sun Jun 29 23:24:06 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,
> one should link with -lthr, not -lkse? Expected result being 
> priorities apply only to threads which call for it. 

yes and no..
That's only YOUR expectation..

if your thread is a "scope-process" thread then you cannot expect your
thread to go to rt priority without effecting the priority of the rest
of the group it is a part of. That's what the process-scope part
means... The thread's priority is only relevant within teh process as a
whole and doesn;t effect it's priority vs other processes.

Your thread is only scheduled within the scope of the process it is a
part of. if the process is not at rt priority, then the thread cannot
really be..  If your thread is "system scope" then each thread can have
an independent priority from the system's point of view.

If you link with libthr you are specifying that all threads are "scope
system" threads. in libkse you get a choice of which you want.

So to answer your original point..
if you want "scope system" threads and a system-wide scheduling priority
then you need to ask for that.. but.. that;s expeceted.
Note.. asking for a new thread to be "scope system" is something that 
I leave to Dan to tell you about :-)

> 
> 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?

probably. it's a programmer error to do that..

> 
> Pete
> 
> _______________________________________________
> freebsd-threads at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
> To unsubscribe, send any mail to "freebsd-threads-unsubscribe at freebsd.org"
> 



More information about the freebsd-threads mailing list