Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 08 Jul 2003 20:01:24 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        deischen@FreeBSD.org
Cc:        threads@FreeBSD.org
Subject:   Re: libc_r silliness
Message-ID:  <XFMail.20030708200124.jhb@FreeBSD.org>
In-Reply-To: <Pine.GSO.4.10.10307081944290.7270-100000@pcnet5.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 08-Jul-2003 Daniel Eischen wrote:
> On Tue, 8 Jul 2003, John Baldwin wrote:
>> 
>> On 08-Jul-2003 Daniel Eischen wrote:
>> > Actually, <sched.h> is marked PS, not TPS, and the text of
>> > the page talks about "process":
>> > 
>> >   Each process is controlled by an associated scheduling policy
>> >   and priority. Associated with each policy is a priority range.
>> >   Each policy definition specifies the minimum priority range for
>> >   that policy. The priority ranges for each policy may overlap
>> >   the priority ranges of other policies.
>> > 
>> > Regardless, we have kernel scheduling parameters _and_ thread
>> > scheduling parameters.  From my interpretation, these interfaces
>> > refer to the process scheduling, not thread scheduling.
>> > This is a good link too:
>> > 
>> >   http://www.opengroup.org/onlinepubs/007904975/functions/xsh_chap02_08.html#tag_02_08_04_01
>> > 
>> >   Each process shall be controlled by an associated scheduling policy
>> >   and priority. These parameters may be specified by explicit
>> >   application execution of the sched_setscheduler() or
>> >   sched_setparam() functions.
>> > 
>> >   Each thread shall be controlled by an associated scheduling policy
>> >   and priority. These parameters may be specified by explicit
>> >   application execution of the pthread_setschedparam() function.
>> 
>> So is X/Open OSI whoever just assuming that the process and thread
>> scheduling policies implement identical priority ranges?
> 
> I dunno, but it seems that is the case.
> 
> We could add pthread_get_priority_{min,max}_np(int policy) as
> non-portable functions.

We could also just force all the thread libraries and kernel to
use the same priority ranges.  Another possibility is to have
each thread library provide their own sched_get_{min,max} and
wrap the sched_{get,set}schedparam() syscalls to massage the
thread priority values into their corresponding process priority
values to simulate a single priority space for each policy.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20030708200124.jhb>