linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] sched: Cleanup and improve polling idle loops
@ 2014-06-04  0:29 Andy Lutomirski
  2014-06-04  0:29 ` [PATCH 1/6] cpuidle: Set polling in poll_idle Andy Lutomirski
                   ` (5 more replies)
  0 siblings, 6 replies; 17+ messages in thread
From: Andy Lutomirski @ 2014-06-04  0:29 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 a pure cleanup, patch 4 is the main
semantic change, patch 5 is cleanup, and patch 6 is peterz's code,
rebased on top of my stuff, and fixed up a bit.

Andy Lutomirski (5):
  cpuidle: Set polling in poll_idle
  sched,trace: Add a tracepoint for remote wakeups via polling
  sched,idle: Clarify where TIF_NRFLAG_POLLING is set
  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          | 22 +++++++++++-
 kernel/sched/sched.h         |  6 ++++
 5 files changed, 105 insertions(+), 29 deletions(-)

-- 
1.9.3


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

end of thread, other threads:[~2014-06-04 16:04 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-04  0:29 [PATCH 0/6] sched: Cleanup and improve polling idle loops Andy Lutomirski
2014-06-04  0:29 ` [PATCH 1/6] cpuidle: Set polling in poll_idle Andy Lutomirski
2014-06-04  0:29 ` [PATCH 2/6] sched,trace: Add a tracepoint for remote wakeups via polling Andy Lutomirski
2014-06-04 13:00   ` Daniel Lezcano
2014-06-04 13:54     ` Peter Zijlstra
2014-06-04 14:43     ` Andy Lutomirski
2014-06-04  0:29 ` [PATCH 3/6] sched,idle: Clarify where TIF_NRFLAG_POLLING is set Andy Lutomirski
2014-06-04 13:03   ` Daniel Lezcano
2014-06-04 14:58     ` Andy Lutomirski
2014-06-04  0:29 ` [PATCH 4/6] sched,idle: Clear polling before descheduling the idle thread Andy Lutomirski
2014-06-04  7:44   ` Peter Zijlstra
2014-06-04 14:57     ` Andy Lutomirski
2014-06-04 16:03       ` Peter Zijlstra
2014-06-04  7:53   ` Peter Zijlstra
2014-06-04 14:46     ` Andy Lutomirski
2014-06-04  0:29 ` [PATCH 5/6] sched,idle: Simplify wake_up_idle_cpu Andy Lutomirski
2014-06-04  0:29 ` [PATCH 6/6] sched: Optimize ttwu IPI Andy Lutomirski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).