Re: Scheduler RR, first time slice wrong?

From: Ingo Molnar
Date: Thu Nov 06 2008 - 02:45:34 EST



(added Cc:s)

* Andreas Huber <andreas.huber@xxxxxxxxxxx> wrote:

> Hi,
>
> when starting a real-time process with the round-robin scheduler, the
> first time slice is set to HZ (1 second).
> When starting two such processes at the same time of the same static
> priority, the second one started is first executed after 1 second.
> (supposing the first process is heavy on cpu load).
> After both have exhausted this first time slice, it is set to
> DEF_TIMESLICE (which is 100ms).
>
> Is this behavior as it is supposed to be?
>
> Please add me in CC.
>
> Regards,
> Andreas
>
>
> Relevant parts in the code:
> include/linux/init_task.h
> #define INIT_TASK(tsk) \
> .rt = { \
> .time_slice = HZ,
>
> kernel/sched.c
> #define DEF_TIMESLICE (100 * HZ / 1000)
>
> kernel/sched_rt.c
> static void task_tick_rt(struct rq *rq, struct task_struct *p, int
> queued)
> if (--p->rt.time_slice)
> return;
>
> p->rt.time_slice = DEF_TIMESLICE;
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/