summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 0225b622cd06..f3f5853a1822 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1696,6 +1696,18 @@ unsigned long sched_get_busy(int cpu)
NSEC_PER_USEC);
}
+static void reset_task_stats(struct task_struct *p)
+{
+ int i;
+
+ p->ravg.sum = 0;
+ p->ravg.demand = 0;
+ p->ravg.partial_demand = 0;
+ p->ravg.flags = 0;
+ for (i = 0; i < RAVG_HIST_SIZE_MAX; ++i)
+ p->ravg.sum_history[i] = 0;
+}
+
/* Called with IRQs disabled */
void reset_all_window_stats(u64 window_start, unsigned int window_size)
{
@@ -1717,14 +1729,7 @@ void reset_all_window_stats(u64 window_start, unsigned int window_size)
read_lock(&tasklist_lock);
do_each_thread(g, p) {
- int i;
-
- p->ravg.sum = 0;
- p->ravg.demand = 0;
- p->ravg.partial_demand = 0;
- p->ravg.flags = 0;
- for (i = 0; i < RAVG_HIST_SIZE_MAX; ++i)
- p->ravg.sum_history[i] = 0;
+ reset_task_stats(p);
p->ravg.mark_start = wallclock;
} while_each_thread(g, p);
read_unlock(&tasklist_lock);