public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] sched: Cleanup and improve polling idle loops
@ 2014-06-04 17:31 Andy Lutomirski
  2014-06-04 17:31 ` [PATCH v2 1/5] cpuidle: Set polling in poll_idle Andy Lutomirski
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Andy Lutomirski @ 2014-06-04 17:31 UTC (permalink / raw)
  To: Peter Zijlstra, umgwanakikbuti
  Cc: mingo, tglx, nicolas.pitre, daniel.lezcano, linux-kernel,
	Andy Lutomirski

This series reduces the number of IPIs on my workload by something like
99%.  It's down from many hundreds per second to very few.

The basic idea behind this series is to make TIF_POLLING_NRFLAG be a
reliable indication that the idle task is polling.  Once that's done,
the rest is reasonably straightforward.

Patches 1 and 2 are related improvements: patch 1 teaches the cpuidle
polling loop how to poll, and patch 2 adds tracepoints so that avoided
IPIs are visible.  Patch 3 is the main semantic change, patch 4 is
cleanup, and patch 5 is peterz's code, rebased on top of my stuff, and
fixed up a bit.

Changes from v1:

 - Squashed the two idle loop rearrangement patches.
 - Improved comments.

Andy Lutomirski (4):
  cpuidle: Set polling in poll_idle
  sched,trace: Add a tracepoint for IPI-less remote wakeups
  sched,idle: Clear polling before descheduling the idle thread
  sched,idle: Simplify wake_up_idle_cpu

Peter Zijlstra (1):
  sched: Optimize ttwu IPI

 drivers/cpuidle/driver.c     |  7 ++--
 include/trace/events/sched.h | 20 +++++++++++
 kernel/sched/core.c          | 79 +++++++++++++++++++++++++++++---------------
 kernel/sched/idle.c          | 30 ++++++++++++++++-
 kernel/sched/sched.h         |  6 ++++
 5 files changed, 113 insertions(+), 29 deletions(-)

-- 
1.9.3


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-06-05 14:43 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-04 17:31 [PATCH v2 0/5] sched: Cleanup and improve polling idle loops Andy Lutomirski
2014-06-04 17:31 ` [PATCH v2 1/5] cpuidle: Set polling in poll_idle Andy Lutomirski
2014-06-05 14:37   ` [tip:sched/core] " tip-bot for Andy Lutomirski
2014-06-04 17:31 ` [PATCH v2 2/5] sched,trace: Add a tracepoint for IPI-less remote wakeups Andy Lutomirski
2014-06-05 14:37   ` [tip:sched/core] sched, trace: " tip-bot for Andy Lutomirski
2014-06-04 17:31 ` [PATCH v2 3/5] sched,idle: Clear polling before descheduling the idle thread Andy Lutomirski
2014-06-04 17:36   ` Peter Zijlstra
2014-06-05 14:37   ` [tip:sched/core] sched/idle: " tip-bot for Andy Lutomirski
2014-06-04 17:31 ` [PATCH v2 4/5] sched,idle: Simplify wake_up_idle_cpu Andy Lutomirski
2014-06-05 14:37   ` [tip:sched/core] sched/idle: Simplify wake_up_idle_cpu() tip-bot for Andy Lutomirski
2014-06-04 17:31 ` [PATCH v2 5/5] sched: Optimize ttwu IPI Andy Lutomirski
2014-06-05 14:37   ` [tip:sched/core] sched/idle: Optimize try-to-wake-up IPI tip-bot for Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox