aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.de.marchi@gmail.com>2009-07-09 07:57:20 -0400
committerIngo Molnar <mingo@elte.hu>2009-07-10 04:43:29 -0400
commit7793527b90d9418211f4fe8464cc1dcb1631ea1b (patch)
treea09cdbe3942d9ba22877976737a220f9aaac2a04 /kernel
parenta1ba4d8ba9f06a397e97cbd67a93ee306860b40a (diff)
sched: Reset sched stats on fork()
The sched_stat fields are currently not reset upon fork. Ingo's recent commit 6c594c21fcb02c662f11c97be4d7d2b73060a205 did reset nr_migrations, but it didn't reset any of the others. This patch resets all sched_stat fields on fork. Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <193b0f820907090457s7a3662f4gcdecdc22fcae857b@mail.gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index a17f3d9a8bfa..c4549bd7e174 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -2572,15 +2572,37 @@ static void __sched_fork(struct task_struct *p)
2572 p->se.avg_wakeup = sysctl_sched_wakeup_granularity; 2572 p->se.avg_wakeup = sysctl_sched_wakeup_granularity;
2573 2573
2574#ifdef CONFIG_SCHEDSTATS 2574#ifdef CONFIG_SCHEDSTATS
2575 p->se.wait_start = 0; 2575 p->se.wait_start = 0;
2576 p->se.sum_sleep_runtime = 0; 2576 p->se.wait_max = 0;
2577 p->se.sleep_start = 0; 2577 p->se.wait_count = 0;
2578 p->se.block_start = 0; 2578 p->se.wait_sum = 0;
2579 p->se.sleep_max = 0; 2579
2580 p->se.block_max = 0; 2580 p->se.sleep_start = 0;
2581 p->se.exec_max = 0; 2581 p->se.sleep_max = 0;
2582 p->se.slice_max = 0; 2582 p->se.sum_sleep_runtime = 0;
2583 p->se.wait_max = 0; 2583
2584 p->se.block_start = 0;
2585 p->se.block_max = 0;
2586 p->se.exec_max = 0;
2587 p->se.slice_max = 0;
2588
2589 p->se.nr_migrations_cold = 0;
2590 p->se.nr_failed_migrations_affine = 0;
2591 p->se.nr_failed_migrations_running = 0;
2592 p->se.nr_failed_migrations_hot = 0;
2593 p->se.nr_forced_migrations = 0;
2594 p->se.nr_forced2_migrations = 0;
2595
2596 p->se.nr_wakeups = 0;
2597 p->se.nr_wakeups_sync = 0;
2598 p->se.nr_wakeups_migrate = 0;
2599 p->se.nr_wakeups_local = 0;
2600 p->se.nr_wakeups_remote = 0;
2601 p->se.nr_wakeups_affine = 0;
2602 p->se.nr_wakeups_affine_attempts = 0;
2603 p->se.nr_wakeups_passive = 0;
2604 p->se.nr_wakeups_idle = 0;
2605
2584#endif 2606#endif
2585 2607
2586 INIT_LIST_HEAD(&p->rt.run_list); 2608 INIT_LIST_HEAD(&p->rt.run_list);