On Mon, 27 Nov 2017 16:04:54 +0100 <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > The patch below does not apply to the 3.18-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > >From 4bdced5c9a2922521e325896a7bbbf0132c94e56 Mon Sep 17 00:00:00 2001 > From: "Steven Rostedt (Red Hat)" <rostedt@xxxxxxxxxxx> > Date: Fri, 6 Oct 2017 14:05:04 -0400 > Subject: [PATCH] sched/rt: Simplify the IPI based RT balancing logic > > When a CPU lowers its priority (schedules out a high priority task for a > lower priority one), a check is made to see if any other CPU has overloaded > RT tasks (more than one). It checks the rto_mask to determine this and if so > it will request to pull one of those tasks to itself if the non running RT > task is of higher priority than the new priority of the next task to run on > the current CPU. > > When we deal with large number of CPUs, the original pull logic suffered > from large lock contention on a single CPU run queue, which caused a huge > latency across all CPUs. This was caused by only having one CPU having > overloaded RT tasks and a bunch of other CPUs lowering their priority. To > solve this issue, commit: > > b6366f048e0c ("sched/rt: Use IPI to trigger RT task push migration instead of pulling") > The bug that is being fixed was added by b6366f048e0c, which was added in 4.1, and doesn't appear to have been backported to 3.18, so this shouldn't be needed for 3.18. -- Steve