2003-03-29 04:39:24

by Perez-Gonzalez, Inaky

[permalink] [raw]
Subject: migration_thread()'s priority too low?


Hi all, Ingo

I am having some trouble in the priority-inheritance wakeup code when
using FIFO tasks - I was wondering: migration_thread() has the equivalent of
a FIFO priority 0; thus, it will be left out by any FIFO task and migration
won't work - I don't think this is causing the problem to my test cases, but
I was curious anyway.

Setting it in 2.5.66's sched.c like this

@@ -2436,7 +2435,7 @@
*/
static int migration_thread(void * data)
{
- struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };
+ struct sched_param param = { .sched_priority = 0 };
int cpu = (long) data;
runqueue_t *rq;
int ret;

gives it max priority; it'd be interesting though to have an extra level so
have FIFO 99 be 1 in the index and 0 still be free for system stuff.

Of course I can be missing anything really clear. Is it intentionate that
migration_thread() has FIFO 0?

I?aky P?rez-Gonz?lez -- Not speaking for Intel -- all opinions are my own
(and my fault)