[RFC GIT PULL] sched; Fix a few missing rq clock updates
From: Frederic Weisbecker
Date: Thu Apr 11 2013 - 19:51:17 EST
Hi,
So I revisited the rq clock series I had for dynticks. The patches
actually were about upstream issues so I refactored the fixes
under that angle and gave up with the wrong asumption that rq
clock relies on the tick for its updates.
Patches 1-4 fix some missing updates. Additionally I removed
2 of these updates from the previous set:
* No need to update the rq clock on idle_balance() because it should
follow a call to deactivate_task() (unless TIF_NEED_RESCHED is set
on idle without new task on the runqueue, not sure we want to cover that).
* No need to update for try_to_wake_up_local() -> ttwu_do_wakeup() -> check_preempt_curr()
as it's following deactivate_task().
Patch 5 brings accessors that will be necessary to settle an rq clock
debugging engine. What remains is to tag scheduler's entry/exit points
and report missing or redundant update_rq_clock() before calls to
rq_clock() and rq_clock_task().
The branch is pullable from:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
sched/core
HEAD: 8b5fa0f1de7e41176dc68740de7548110a404538
Thanks.
---
Frederic Weisbecker (5):
sched: Update rq clock before migrating tasks out of dying CPU
sched: Update rq clock before setting fair group shares
sched: Update rq clock before calling check_preempt_curr()
sched: Update rq clock earlier in unthrottle_cfs_rq
sched: Use an accessor to read rq clock
kernel/sched/core.c | 15 ++++++++++--
kernel/sched/fair.c | 51 +++++++++++++++++++++++++--------------------
kernel/sched/rt.c | 8 +++---
kernel/sched/sched.h | 10 +++++++++
kernel/sched/stats.h | 8 +++---
kernel/sched/stop_task.c | 8 +++---
6 files changed, 62 insertions(+), 38 deletions(-)
--
1.7.5.4
--
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/