From: Stratos Karafotis <stratosk@semaphore.gr>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
Viresh Kumar <viresh.kumar@linaro.org>,
LKML <linux-kernel@vger.kernel.org>,
Fernando Luis Vazquez Cao <fernando_b1@lab.ntt.co.jp>,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Arjan van de Ven <arjan@linux.intel.com>
Subject: Re: [PATCH 1/4] nohz: Only update sleeptime stats locally
Date: Mon, 19 Aug 2013 21:05:45 +0300 [thread overview]
Message-ID: <52125E79.8070009@semaphore.gr> (raw)
In-Reply-To: <20130818170408.GA22417@redhat.com>
On 08/18/2013 08:04 PM, Oleg Nesterov wrote:
> Sorry for double post. forgot to cc cpufreq maintainers.
>
> On 08/16, Frederic Weisbecker wrote:
>>
>> To fix this, lets only update the sleeptime stats locally when the CPU
>> exits from idle.
>
> I am in no position to ack the changes in this area, but I like this
> change very much. Because, as a code reader, I was totally confused by
>
> if (last_update_time)
> update_ts_time_stats()
>
> code and it looks "obviously wrong".
>
> I added more cc's. It seems to me that 9366d840 "cpufreq: governors:
> Calculate iowait time only when necessary" doesn't realize what
>
> - u64 idle_time = get_cpu_idle_time_us(cpu, NULL);
> + u64 idle_time = get_cpu_idle_time_us(cpu, io_busy ? wall : NULL);
>
> actually means. OTOH, get_cpu_iowait_time_us() was called with
> last_update_time != NULL even before this patch...
To be honest, I am unfamiliar with tick-sched code.
With patch 9366d840, I was trying to avoid duplicate calls to
get_cpu_iowait_time_us function. I just saw that the original
code was calling update_ts_time_stats within get_cpu_idle_time_us
and get_cpu_iowait_time_us and I thought that I should keep calling
these functions with non NULL parameter to update the time stats.
In fact the original patch submission was without this:
- u64 idle_time = get_cpu_idle_time_us(cpu, NULL);
+ u64 idle_time = get_cpu_idle_time_us(cpu, io_busy ? wall : NULL);
and the idle time calculation was wrong (ondemand couldn't increase to max freq)
For your convenience the call paths before and after this patch:
Before patch
get_cpu_idle_time(j, &cur_wall_time);
u64 idle_time = get_cpu_idle_time_us(cpu, NULL);
idle_time += get_cpu_iowait_time_us(cpu, wall);
update_ts_time_stats(cpu, ts, now, last_update_time);
...
get_cpu_iowait_time_us(j, &cur_wall_time);
update_ts_time_stats(cpu, ts, now, last_update_time);
After patch (io_busy = 1)
cur_idle_time = get_cpu_idle_time(j, &cur_wall_time, io_busy);
u64 idle_time = get_cpu_idle_time_us(cpu, io_busy ? wall : NULL);
update_ts_time_stats(cpu, ts, now, last_update_time);
After patch (io_busy = 0)
cur_idle_time = get_cpu_idle_time(j, &cur_wall_time, io_busy);
u64 idle_time = get_cpu_idle_time_us(cpu, io_busy ? wall : NULL);
idle_time += get_cpu_iowait_time_us(cpu, wall);
update_ts_time_stats(cpu, ts, now, last_update_time);
Regards,
Stratos
next prev parent reply other threads:[~2013-08-19 18:14 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-16 15:42 [PATCH RESEND 0/4] nohz: Fix racy sleeptime stats Frederic Weisbecker
2013-08-16 15:42 ` [PATCH 1/4] nohz: Only update sleeptime stats locally Frederic Weisbecker
2013-08-18 16:49 ` Oleg Nesterov
2013-08-18 21:38 ` Frederic Weisbecker
2013-08-18 17:04 ` Oleg Nesterov
2013-08-19 18:05 ` Stratos Karafotis [this message]
2013-08-16 15:42 ` [PATCH 2/4] nohz: Synchronize sleep time stats with seqlock Frederic Weisbecker
2013-08-16 16:02 ` Oleg Nesterov
2013-08-16 16:20 ` Frederic Weisbecker
2013-08-16 16:26 ` Oleg Nesterov
2013-08-16 16:46 ` Frederic Weisbecker
2013-08-16 16:49 ` Oleg Nesterov
2013-08-16 17:12 ` Frederic Weisbecker
2013-08-18 16:36 ` Oleg Nesterov
2013-08-18 21:25 ` Frederic Weisbecker
2013-08-19 10:58 ` Peter Zijlstra
2013-08-19 15:44 ` Arjan van de Ven
2013-08-19 15:47 ` Arjan van de Ven
2013-08-19 11:10 ` Peter Zijlstra
2013-08-19 11:15 ` Peter Zijlstra
2013-08-20 6:59 ` Fernando Luis Vázquez Cao
2013-08-20 8:44 ` Peter Zijlstra
2013-08-20 15:29 ` Frederic Weisbecker
2013-08-20 15:33 ` Arjan van de Ven
2013-08-20 15:35 ` Frederic Weisbecker
2013-08-20 15:41 ` Arjan van de Ven
2013-08-20 15:31 ` Arjan van de Ven
2013-08-20 16:01 ` Peter Zijlstra
2013-08-20 16:33 ` Oleg Nesterov
2013-08-20 17:54 ` Peter Zijlstra
2013-08-20 18:25 ` Oleg Nesterov
2013-08-21 8:31 ` Peter Zijlstra
2013-08-21 11:35 ` Oleg Nesterov
2013-08-21 12:33 ` Peter Zijlstra
2013-08-21 14:23 ` Peter Zijlstra
2013-08-21 16:41 ` Oleg Nesterov
2013-10-01 14:05 ` Frederic Weisbecker
2013-10-01 14:26 ` Frederic Weisbecker
2013-10-01 14:27 ` Frederic Weisbecker
2013-10-01 14:49 ` Frederic Weisbecker
2013-10-01 15:00 ` Peter Zijlstra
2013-10-01 15:21 ` Frederic Weisbecker
2013-10-01 15:56 ` Peter Zijlstra
2013-10-01 16:47 ` Frederic Weisbecker
2013-10-01 16:59 ` Peter Zijlstra
2013-10-02 12:45 ` Frederic Weisbecker
2013-10-02 12:50 ` Peter Zijlstra
2013-10-02 14:35 ` Arjan van de Ven
2013-10-02 16:01 ` Frederic Weisbecker
2013-08-21 12:48 ` Peter Zijlstra
2013-08-21 17:09 ` Oleg Nesterov
2013-08-21 18:31 ` Peter Zijlstra
2013-08-21 18:32 ` Oleg Nesterov
2013-08-20 22:18 ` Frederic Weisbecker
2013-08-21 11:49 ` Oleg Nesterov
2013-08-20 6:21 ` Fernando Luis Vázquez Cao
2013-08-20 21:55 ` Frederic Weisbecker
2013-08-16 16:32 ` Frederic Weisbecker
2013-08-16 16:33 ` Oleg Nesterov
2013-08-16 16:49 ` Frederic Weisbecker
2013-08-16 16:37 ` Frederic Weisbecker
2013-08-18 16:54 ` Oleg Nesterov
2013-08-18 21:40 ` Frederic Weisbecker
2013-08-16 15:42 ` [PATCH 3/4] nohz: Consolidate sleep time stats read code Frederic Weisbecker
2013-08-18 17:00 ` Oleg Nesterov
2013-08-18 21:47 ` Frederic Weisbecker
2013-08-16 15:42 ` [PATCH 4/4] nohz: Convert a few places to use local per cpu accesses Frederic Weisbecker
2013-08-16 16:00 ` Peter Zijlstra
2013-08-16 16:12 ` Frederic Weisbecker
2013-08-16 16:19 ` Oleg Nesterov
2013-08-16 16:34 ` Frederic Weisbecker
2013-08-20 18:15 ` [PATCH RESEND 0/4] nohz: Fix racy sleeptime stats Oleg Nesterov
2013-08-21 8:28 ` Peter Zijlstra
2013-08-21 11:42 ` Oleg Nesterov
-- strict thread matches above, loose matches on Subject: below --
2014-05-07 13:41 [PATCH 1/4] nohz: Only update sleeptime stats locally Denys Vlasenko
2014-04-24 18:45 Denys Vlasenko
2013-08-09 0:54 [PATCH 0/4] nohz: Fix racy sleeptime stats Frederic Weisbecker
2013-08-09 0:54 ` [PATCH 1/4] nohz: Only update sleeptime stats locally Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52125E79.8070009@semaphore.gr \
--to=stratosk@semaphore.gr \
--cc=akpm@linux-foundation.org \
--cc=arjan@linux.intel.com \
--cc=fernando_b1@lab.ntt.co.jp \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=peterz@infradead.org \
--cc=rjw@sisk.pl \
--cc=tglx@linutronix.de \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.