Re: [PATCH] sched-rt: Reduce excessive task push rate by not pushing tasks with equal priority as the current task

From: Steven Rostedt
Date: Thu Jan 22 2015 - 23:50:34 EST


On Fri, 23 Jan 2015 05:29:30 +0100
Mike Galbraith <umgwanakikbuti@xxxxxxxxx> wrote:

> On Thu, 2015-01-22 at 10:53 -0800, Tim Chen wrote:
> > Commit 3be209a8 tries to migrate task of equal priority as the
> > running one to other cpus to balance load and eliminate any idle
> > cpus. However, for system that is fully busy and running workload
> > of a few priorities, we found this change to cause tasks getting
> > pushed around without improving cpu utilization. On a fully loaded
> > system running a well known OLTP benchmark, it causes 70% more run
> > queue locking in the push task path without improving cpu
> > utilization and make throughput degrade by 1.5%. We observe much
> > higher rq lock contention due to excessive lockings of target run
> > queues on task wakeup.
>
> Pushing tasks of equal priority is about getting rt tasks to a CPU
> they can utilize NOW. Trying to improve throughput and whatnot is
> all well and good, but sacrificing the most sacred rt cow on the
> planet to improve some benchmark number is a very bad idea :)
>

What Mike said.

With RT tasks the #1 importance is running as soon as they should run.
Throughput is #2. We never sacrifice #1 to improve #2.

Non RT tasks have much better throughput algorithms than RT tasks. But
they are much less likely to react to an event consistently as an RT
task will.

Never give a task an RT priority if your main objective is to have it
"run faster". If you do, you have no clue about what RT is used for.

-- Steve
--
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/