From: Peter Zijlstra <peterz@infradead.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Boqun Feng <boqun.feng@gmail.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
Jonathan Corbet <corbet@lwn.net>,
Michal Hocko <mhocko@kernel.org>,
David Howells <dhowells@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Will Deacon <will.deacon@arm.com>
Subject: Re: [PATCH] Documentation: Remove misleading examples of the barriers in wake_*()
Date: Fri, 18 Sep 2015 08:49:56 +0200 [thread overview]
Message-ID: <20150918064956.GQ3816@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <20150917170111.GA29215@redhat.com>
On Thu, Sep 17, 2015 at 07:01:11PM +0200, Oleg Nesterov wrote:
> On 09/17, Peter Zijlstra wrote:
> >
> > Included in it are some of the details on this subject, because a wakeup
> > has two prior states that are of importance, the tasks own prior state
> > and the wakeup state, both should be considered in the 'program order'
> > flow.
>
> Great. Just one question,
>
> > + * BLOCKING -- aka. SLEEP + WAKEUP
> > + *
> > + * For blocking things are a little more interesting, because when we dequeue
> > + * the task, we don't need to acquire the old rq lock in order to migrate it.
> > + *
> > + * Say CPU0 does a wait_event() and CPU1 does the wake() and migrates the task
> > + * to CPU2 (the most complex example):
> > + *
> > + * CPU0 (schedule) CPU1 (try_to_wake_up) CPU2 (sched_ttwu_pending)
> > + *
> > + * X->state = UNINTERRUPTIBLE
> > + * MB
> > + * if (cond)
> > + * break
> > + * cond = true
> > + *
> > + * WMB WMB (aka smp_mb__before_spinlock)
>
> Yes, both CPU's do WMB-aka-smp_mb__before_spinlock...
>
> But afaics in this particular case we do not really need them?
> So perhaps we should not even mention them?
>
> Because (if I am right) this can confuse the reader who will try
> to understand how/where do we rely on these barriers.
Good point. Initially I put all barriers in, but now that we've figured
out which are important (the text is correct, right? please double
check) we can remove the rest.
next prev parent reply other threads:[~2015-09-18 6:55 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-08 1:14 [PATCH] Documentation: Remove misleading examples of the barriers in wake_*() Boqun Feng
2015-09-09 19:28 ` Paul E. McKenney
2015-09-10 2:16 ` Boqun Feng
2015-09-10 17:55 ` Oleg Nesterov
2015-09-11 16:59 ` Boqun Feng
2015-09-17 13:01 ` Peter Zijlstra
2015-09-17 17:01 ` Oleg Nesterov
2015-09-18 6:49 ` Peter Zijlstra [this message]
2015-09-21 17:46 ` Oleg Nesterov
2015-10-06 16:04 ` Peter Zijlstra
2015-10-06 16:24 ` Peter Zijlstra
2015-10-06 16:35 ` Will Deacon
2015-10-06 19:57 ` Peter Zijlstra
2015-10-07 11:10 ` Peter Zijlstra
2015-10-07 15:40 ` Paul E. McKenney
2015-09-24 13:21 ` Boqun Feng
2015-10-06 16:06 ` Peter Zijlstra
2015-10-11 15:26 ` Boqun Feng
2015-10-12 0:40 ` Paul E. McKenney
2015-10-12 9:06 ` Boqun Feng
2015-10-12 11:54 ` Peter Zijlstra
2015-10-12 13:09 ` Boqun Feng
2015-10-12 16:26 ` Peter Zijlstra
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=20150918064956.GQ3816@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=boqun.feng@gmail.com \
--cc=corbet@lwn.net \
--cc=dhowells@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhocko@kernel.org \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=torvalds@linux-foundation.org \
--cc=will.deacon@arm.com \
/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).