[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTimhtoMLSo1W421+EpXiSphcfJ_6z8=usrF4M3FH@mail.gmail.com>
Date: Wed, 22 Dec 2010 05:59:57 -0800
From: Venkatesh Pallipadi <venki@...gle.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Ingo Molnar <mingo@...e.hu>, "H. Peter Anvin" <hpa@...or.com>,
Thomas Gleixner <tglx@...utronix.de>,
Balbir Singh <balbir@...ux.vnet.ibm.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
linux-kernel@...r.kernel.org, Paul Turner <pjt@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>,
Shaun Ruffell <sruffell@...ium.com>
Subject: Re: [PATCH 5/5] Account ksoftirqd time as cpustat softirq -v2
On Wed, Dec 22, 2010 at 1:20 AM, Peter Zijlstra <peterz@...radead.org> wrote:
> On Tue, 2010-12-21 at 17:09 -0800, Venkatesh Pallipadi wrote:
>> softirq time in ksoftirqd context is not accounted in ns granularity
>> per cpu softirq stats, as we want that to be a part of ksoftirqd
>> exec_runtime.
>>
>> Accounting them as softirq on /proc/stat separately.
>>
>> Tested-by: Shaun Ruffell <sruffell@...ium.com>
>> Signed-off-by: Venkatesh Pallipadi <venki@...gle.com>
>> ---
>> kernel/sched.c | 8 ++++++++
>> 1 files changed, 8 insertions(+), 0 deletions(-)
>>
>> diff --git a/kernel/sched.c b/kernel/sched.c
>> index 193b1d0..4ff6d1a 100644
>> --- a/kernel/sched.c
>> +++ b/kernel/sched.c
>> @@ -3819,6 +3819,14 @@ static void irqtime_account_process_tick(struct task_struct *p, int user_tick,
>> cpustat->irq = cputime64_add(cpustat->irq, tmp);
>> } else if (irqtime_account_si_update()) {
>> cpustat->softirq = cputime64_add(cpustat->softirq, tmp);
>> + } else if (this_cpu_ksoftirqd() == p) {
>> + /*
>> + * ksoftirqd time do not get accounted in cpu_softirq_time.
>> + * So, we have to handle it separately here.
>> + * Also, p->stime needs to be updated for ksoftirqd.
>> + */
>> + __account_system_time(p, cputime_one_jiffy, one_jiffy_scaled,
>> + &cpustat->softirq);
>> } else if (user_tick) {
>> account_user_time(p, cputime_one_jiffy, one_jiffy_scaled);
>> } else if (p == rq->idle) {
>
> So you add the ksoftirqd runtime as softirq time in the /proc/stat
> output?
>
> That seems dubious...
>
Yes. Thats similar to what we do today. As long as we are in softirq,
whether bottomhalf or ksoftirqd, we account the tick as softirq time
in /proc/stat.
I thought it also makes sense from user perspective. They want to know
how much time are we currently spending serving softirqs and hardirqs.
It is better to get that information at one place, instead of say look
at /proc/stat and add percpu ksoftirqd time to it. I mean,
user/administrator does not have to care whether ksoftirqd is involved
or not to know how much time was spend serving softirqs.
Thanks,
Venki
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists