lkml.org 
[lkml]   [2014]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/6] sched: Cleanup and improve polling idle loops
Date
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



\
 
 \ /
  Last update: 2014-06-04 03:01    [W:0.142 / U:0.448 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site