2007-08-08 23:45:23

by Mitchell Erblich

[permalink] [raw]
Subject: Re: Question: RT schedular : task_tick_rt(struct rq *rq, structtask_struct *p) : decreases overhead when rq->nr_running == 1

Ingo Molnar and group,

First, RT/RR tasks are not deprecated. This
change simply removes sched overhead while
only 1 RT/RR task is runable per rq.

The code size increase is minor and is a very
straightforward change..

THUS...

My assumption is / was to hand you/Ingo Molnar this change
because,
* you have the latest scheduler git tree and do periodic
pull requests, so I consider you the default scheduler
maintainer .... : ^ )
* my scheduler tree is more developmental,
* and I wish to first suggest minor changes over time to see
what scheduler changes are more acceptable.

Mitchell Erblich
----------------------


Ingo Molnar wrote:
>
> * Mitchell Erblich <[email protected]> wrote:
>
> > After
> > p->time_slice = static_prio_timeslice(p->static_prio);
> >
> > Why isn't their a check like
> > if (rq->nr_running == 1)
> > return;
> >
> > Which world remove the need for any recheduling or requeue'ing...
>
> your change is a possible optimization, but this is a pretty rare
> codepath because the overwhelming majority of RT apps uses SCHED_FIFO.
> Plus, the time_slice going down to 0 is a relatively rare event even for
> SCHED_RR tasks. And if we have only a single SCHED_RR task, why is it
> SCHED_RR to begin with? So this is on several levels an uncommon
> workload and by adding a check like that we'd increase the codesize. But
> ... no strong feelings against this optimization - if you send a proper
> patch we can apply it, it certainly makes sense from a logic POV.
>
> Ingo
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/


2007-08-09 06:59:29

by Ingo Molnar

[permalink] [raw]
Subject: Re: Question: RT schedular : task_tick_rt(struct rq *rq, structtask_struct *p) : decreases overhead when rq->nr_running == 1


* Mitchell Erblich <[email protected]> wrote:

> First, RT/RR tasks are not deprecated. [...]

I'm confused, do you say this in reference to anything i said? I did not
say that RR tasks are deprecated and you were top-posting so i cannot
connect it to anything specific. I only said RR tasks are _rare_:

>> this is a pretty rare codepath because the overwhelming majority of
>> RT apps uses SCHED_FIFO [...]

and i hope you can see the difference between 'rare' and 'deprecated'
;-) And i suspect you also missed the last bit of what i wrote:

>> So this is on several levels an uncommon workload and by adding a
>> check like that we'd increase the codesize. But ... no strong
>> feelings against this optimization - if you send a proper patch we
>> can apply it, it certainly makes sense from a logic POV.

and you also missed the first bit it appears:

>> your change is a possible optimization, [...]

so you are banging, with full force, on completely open doors =B-)

Ingo