Fernando Lopez-Lezcano wrote:
On Sat, 2006-02-25 at 02:44 -0500, Hector Centeno-Garcia wrote:
Hi,
I've been playing around a little with the priority thing. I would like
to understand better the way it works. Looking at the priority of jackd
(running realtime, as user, and with a RT kernel, full-preemption) I
can't figure out why if I start jackd with -P 60 (or any other number >
0) the output of chrt is always:
$ chrt -p (jackd's pid)
pid 8115's current scheduling policy: SCHED_OTHER
pid 8115's current scheduling priority: 0
I checked this in two different distros (FC4+CCRMA and Ubuntu with
custom RT kernel) and the result is the same. Is it not supposed to read:
$ chrt -p 8115
pid 8115's current scheduling policy: SCHED_FIFO (maybe?)
pid 8115's current scheduling priority: 60
I know that I can set this manually, but I'm just wondering what is the
real effect of the -P flag.
Any help will be appreciated,
Assuming you did start Jack with the "-R" option you are probablyk
looking at the main Jack process and that is actually SCHED_OTHER. Jack
has more threads and some of them are SCHED_FIFO.
Do this:
ls /proc/(jack's pid)/tasks
and you will see the pids of the other threads (I'm sure there must be a
more elegant way of finding this info)
A chrt of those will show something like this:
$ for pid in `ls /proc/27701/task/` ; do chrt -p $pid ; done
pid 27701's current scheduling policy: SCHED_OTHER
pid 27701's current scheduling priority: 0
pid 27702's current scheduling policy: SCHED_OTHER
pid 27702's current scheduling priority: 0
pid 27703's current scheduling policy: SCHED_OTHER
pid 27703's current scheduling priority: 0
pid 27704's current scheduling policy: SCHED_FIFO
pid 27704's current scheduling priority: 72
pid 27705's current scheduling policy: SCHED_FIFO
pid 27705's current scheduling priority: 62
And there you have the rt threads...
-- Fernando
Aaaaah! I see! Yes, I was starting jackd with the -R flag... but I
didn't know jackd had more than one thread running at the same time.
This is what I get:
hector@Hector:~$ for pid in `ls /proc/8260/task/` ; do chrt -p $pid ; done
pid 8260's current scheduling policy: SCHED_OTHER
pid 8260's current scheduling priority: 0
pid 8261's current scheduling policy: SCHED_OTHER
pid 8261's current scheduling priority: 0
pid 8262's current scheduling policy: SCHED_FIFO
pid 8262's current scheduling priority: 80
pid 8263's current scheduling policy: SCHED_FIFO
pid 8263's current scheduling priority: 70
Thank you Fernando and Florian.
Hector.