Messages in this thread | | | Date | Thu, 22 Jan 2015 23:50:48 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH] sched-rt: Reduce excessive task push rate by not pushing tasks with equal priority as the current task |
| |
On Fri, 23 Jan 2015 05:29:30 +0100 Mike Galbraith <umgwanakikbuti@gmail.com> 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
| |