aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/sched.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 2a3c9799d76b..8b718b59b09f 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3686,6 +3686,14 @@ static void irqtime_account_process_tick(struct task_struct *p, int user_tick,
3686 cpustat->irq = cputime64_add(cpustat->irq, tmp); 3686 cpustat->irq = cputime64_add(cpustat->irq, tmp);
3687 } else if (irqtime_account_si_update()) { 3687 } else if (irqtime_account_si_update()) {
3688 cpustat->softirq = cputime64_add(cpustat->softirq, tmp); 3688 cpustat->softirq = cputime64_add(cpustat->softirq, tmp);
3689 } else if (this_cpu_ksoftirqd() == p) {
3690 /*
3691 * ksoftirqd time do not get accounted in cpu_softirq_time.
3692 * So, we have to handle it separately here.
3693 * Also, p->stime needs to be updated for ksoftirqd.
3694 */
3695 __account_system_time(p, cputime_one_jiffy, one_jiffy_scaled,
3696 &cpustat->softirq);
3689 } else if (user_tick) { 3697 } else if (user_tick) {
3690 account_user_time(p, cputime_one_jiffy, one_jiffy_scaled); 3698 account_user_time(p, cputime_one_jiffy, one_jiffy_scaled);
3691 } else if (p == rq->idle) { 3699 } else if (p == rq->idle) {