From b171c3e6cde7063e53a50b33e04101d25338d87d Mon Sep 17 00:00:00 2001 From: Xie XiuQi Date: Wed, 17 Apr 2019 22:01:31 +0800 Subject: [PATCH] sched/cputime: add cmdline account_irqtime_to_task hulk inclusion category: bugfix bugzilla: 13257 CVE: NA Product team don't want to account irqtime to task. They want to show the cpu usage to customers as before. In this patch we add a cmdline option, which is determined by the product team to turn it on or off. Signed-off-by: Xie XiuQi Reviewed-by: Cheng Jian Signed-off-by: Yang Yingliang --- kernel/sched/core.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index ad02c65d9e1d..c68880ed0590 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -129,6 +129,14 @@ struct rq *task_rq_lock(struct task_struct *p, struct rq_flags *rf) /* * RQ-clock updating methods: */ +bool account_irqtime_to_task __read_mostly; +static int __init setup_account_irqtime(char *str) +{ + account_irqtime_to_task = true; + + return 0; +} +__setup("account-irqtime-to-task", setup_account_irqtime); static void update_rq_clock_task(struct rq *rq, s64 delta) { @@ -139,6 +147,9 @@ static void update_rq_clock_task(struct rq *rq, s64 delta) s64 __maybe_unused steal = 0, irq_delta = 0; #ifdef CONFIG_IRQ_TIME_ACCOUNTING + if (account_irqtime_to_task) + goto out; + irq_delta = irq_time_read(cpu_of(rq)) - rq->prev_irq_time; /* @@ -161,6 +172,8 @@ static void update_rq_clock_task(struct rq *rq, s64 delta) rq->prev_irq_time += irq_delta; delta -= irq_delta; + +out: #endif #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING if (static_key_false((¶virt_steal_rq_enabled))) { -- GitLab