[PATCH 0/6] sched: Cleanup and improve polling idle loops

From: Andy Lutomirski
Date: Tue Jun 03 2014 - 20:30:03 EST


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

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