[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A09AB2E.8030002@nortel.com>
Date: Tue, 12 May 2009 11:00:30 -0600
From: "Chris Friesen" <cfriesen@...tel.com>
To: Jussi Laako <jussi@...arnerd.net>
CC: Peter Zijlstra <peterz@...radead.org>,
James Courtier-Dutton <James@...erbug.co.uk>,
linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...e.hu>,
d.faggioli@...up.it
Subject: Re: [RFC][PATCH] Multimedia scheduling class, take 2
Jussi Laako wrote:
> Chris Friesen wrote:
>
>>If all you're trying to do is allow different threads to run at
>>different nice levels, what about extending sys_setpriority() to take a
>>"which" of PRIO_THREAD? We'd probably have to call the syscall directly
>>until/unless libc picks up the new option.
>
>
> How would this be mapped to a POSIX standard API?
You'd call sys_setpriority. Actually, you'd probably have to call
syscall(__NR_getpriority...) until glibc picks up the new option.
Then for the "which" field, instead of PRIO_PROCESS you would use a new
PRIO_THREAD (or PRIO_TASK, whichever makes more sense) which would only
set the nice level for the specific thread specified in the "who" field.
Of course, without glibc/pthreads support you would only be able to set
the nice level for the current thread since you don't have any way to
map from "pthread_t *" to tid. And you wouldn't be able to create new
threads with a particular nice level already set. But that argument
holds true for a new sched policy as well, because glibc checks the
policy internally and only knows about the normal three.
> I would like to see
> something which works straight out with
> pthread_setschedprio()/pthread_getschedparam(). In order it to work
> correctly it also needs sys_sched_get_priority_min and
> sys_sched_get_priority_max.
This option extends the "nice" API rather than the static priority API,
so all of the above would still have a static priority of 0 for SCHED_OTHER.
Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists