From: Oleg Nesterov <oleg@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
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>,
Peter Zijlstra <peterz@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Arjan van de Ven <arjan@linux.intel.com>
Subject: Re: [PATCH 2/4] nohz: Synchronize sleep time stats with seqlock
Date: Sun, 18 Aug 2013 18:36:39 +0200 [thread overview]
Message-ID: <20130818163639.GA20393@redhat.com> (raw)
In-Reply-To: <20130816171208.GJ24210@somewhere>
On 08/16, Frederic Weisbecker wrote:
>
> On Fri, Aug 16, 2013 at 06:49:22PM +0200, Oleg Nesterov wrote:
> >
> > Personally I am fine either way.
>
> Me too.
>
> So my proposition is that we can keep the existing patches as they fix other distinct races
perhaps... but it would be nice to fix the "goes backward" problem.
This "race" is not theoretical, at least for get_cpu_iowait_time_us().
nr_iowait_cpu() can change from !0 to 0 very easily.
And just in case, note that get_cpu_idle_time_us() has the same problem
too, because it can also change from 0 to !0 although this case is much
less likely.
However, right now I do not see a simple solution. It seems that, if
get_cpu_idle_time_us() does ktime_add(ts->idle_sleeptime) it should
actually update ts->idle_sleeptime/entrytime to avoid these races
(the same for ->idle_sleeptime), but then we need the locking.
> (and we add fixes on what peterz just reported)
Do you mean his comments about 4/4 or I missed something else?
> Ah and I'll wait for
> your review first.
If only I could understand this code ;) It looks really simple and
I hope I can understand what it does. But not why. I simply can't
understand why idle/iowait are "mutually exclusive".
And if we do this, then perhaps io_schedule() should do
"if (atomic_dec(&rq->nr_iowait)) update_iowait_sleeptime()" but
this means the locking again.
> Then if all goes well on the pull request we describe him the nr_iowait race and we let him
> choose what to do with that nr_iowait migration race:
OK, agreed.
> Or may be Peter could tell us as well. Peter, do you have a preference?
Yes, it would be nice to know what Peter thinks ;)
Oleg.
next prev parent reply other threads:[~2013-08-18 16:43 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
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 [this message]
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-05-07 13:41 ` [PATCH 2/4] nohz: Synchronize sleep time stats with seqlock Denys Vlasenko
2014-04-24 18:45 [PATCH 1/4] nohz: Only update sleeptime stats locally Denys Vlasenko
2014-04-24 18:45 ` [PATCH 2/4] nohz: Synchronize sleep time stats with seqlock Denys Vlasenko
2013-08-09 0:54 [PATCH 0/4] nohz: Fix racy sleeptime stats Frederic Weisbecker
2013-08-09 0:54 ` [PATCH 2/4] nohz: Synchronize sleep time stats with seqlock 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=20130818163639.GA20393@redhat.com \
--to=oleg@redhat.com \
--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=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).