system priorities
Daniel Eischen
eischen at vigrid.com
Sat May 1 07:52:20 PDT 2004
On Sat, 1 May 2004, Petri Helenius wrote:
> Daniel Eischen wrote:
>
> >
> >It looks like rtprio will set the priority of the first
> >KSEG in the proc's list of KSEGs. This isn't necessarily
> >the first KSEG created (main). In fact, newly created
> >KSEGs get inserted onto the head of the list, so rtprio()
> >may act on different KSEGs depending on if it is called
> >before or after any KSEG creations.
> >
> >
> >
> This sounds like a bug. Could it change the KSEG which called the rtprio
> so there would be some deterministic behaviour to the rtprio if used in
> threaded program? So I take it from this that rtprio is also broken for
> libthr?
Yes.
> >I would really like a Solaris-like priocntl() so that you
> >can specify which KSEG (or whatever thing that will hold
> >the priority in the future) to act on.
> >
> >
> >
> I fail to understand the value of being able to point to other threads
> for priority setting? Or are you talking about a facility which would
> exist below the rtprio call?
The Solaris priocntl() lets you set/get:
P_LWPID
The id argument is an LWP ID. The priocntl function
applies to the LWP with the specified ID within the
calling process.
P_PID The id argument is a process ID specifying a single
process. The priocntl() function applies to all LWPs
currently associated with the specified process.
P_PPID
The id argument is a parent process ID. The priocntl()
function applies to all LWPs currently associated with
processes with the specified parent process ID.
P_PGID
The id argument is a process group ID. The priocntl()
function applies to all LWPs currently associated with
processes in the specified process group.
P_SID The id argument is a session ID. The priocntl() func-
tion applies to all LWPs currently associated with
processes in the specified session.
P_TASKID
The id argument is a task ID. The priocntl() function
applies to all LWPs currently associated with
processes in the specified task.
P_CID The id argument is a class ID (returned by the
priocntl() PC_GETCID command as explained below). The
priocntl() function applies to all LWPs in the speci-
fied class.
P_UID The id argument is a user ID. The priocntl() function
applies to all LWPs with this effective user ID.
P_GID The id argument is a group ID. The priocntl() function
applies to all LWPs with this effective group ID.
P_PROJID
The id argument is a project ID. The priocntl() func-
tion applies to all LWPs with this project ID.
P_ALL The priocntl() function applies to all existing LWPs.
The value of id is ignored. The permission restric-
tions described below still apply.
P_MYID
The calling LWP's LWP_ID, PPID, GID, SID, TASKID, CID,
UID, GID, or PROJID...
We probably don't need all these, but perhaps some of them could
be useful.
--
Dan Eischen
More information about the freebsd-threads
mailing list