aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched_fair.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2007-10-15 11:00:18 -0400
committerIngo Molnar <mingo@elte.hu>2007-10-15 11:00:18 -0400
commite5f32a3856caabe745381279f7f32e3b581b59dc (patch)
tree5448c1116966ba96096915e9022241638e5ab7f4 /kernel/sched_fair.c
parent91c234b4e3419c786cac2d5b7a7b96443e512e3a (diff)
sched: speed up context-switches a bit
speed up context-switches a bit by not clearing p->exec_start. (as a side-effect, this also makes p->exec_start a universal timestamp available to cache-hot estimations.) Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_fair.c')
-rw-r--r--kernel/sched_fair.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index c240b72b4e62..cea1fa32b3f4 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -379,15 +379,6 @@ update_stats_curr_start(struct cfs_rq *cfs_rq, struct sched_entity *se)
379 se->exec_start = rq_of(cfs_rq)->clock; 379 se->exec_start = rq_of(cfs_rq)->clock;
380} 380}
381 381
382/*
383 * We are descheduling a task - update its stats:
384 */
385static inline void
386update_stats_curr_end(struct cfs_rq *cfs_rq, struct sched_entity *se)
387{
388 se->exec_start = 0;
389}
390
391/************************************************** 382/**************************************************
392 * Scheduling class queueing methods: 383 * Scheduling class queueing methods:
393 */ 384 */
@@ -609,8 +600,6 @@ static void put_prev_entity(struct cfs_rq *cfs_rq, struct sched_entity *prev)
609 if (prev->on_rq) 600 if (prev->on_rq)
610 update_curr(cfs_rq); 601 update_curr(cfs_rq);
611 602
612 update_stats_curr_end(cfs_rq, prev);
613
614 check_spread(cfs_rq, prev); 603 check_spread(cfs_rq, prev);
615 if (prev->on_rq) { 604 if (prev->on_rq) {
616 update_stats_wait_start(cfs_rq, prev); 605 update_stats_wait_start(cfs_rq, prev);