From: Oleg Nesterov <oleg@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Fengguang Wu <fengguang.wu@intel.com>,
Jet Chen <jet.chen@intel.com>, Su Tao <tao.su@intel.com>,
Yuanhan Liu <yuanhan.liu@intel.com>, LKP <lkp@01.org>,
linux-kernel@vger.kernel.org,
Marcel Holtmann <marcel@holtmann.org>,
Peter Hurley <peter@hurleysoftware.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>
Subject: Re: [rfcomm_run] WARNING: CPU: 1 PID: 79 at kernel/sched/core.c:7156 __might_sleep()
Date: Mon, 6 Oct 2014 18:21:09 +0200 [thread overview]
Message-ID: <20141006162109.GA29890@redhat.com> (raw)
In-Reply-To: <20141006091915.GC6758@twins.programming.kicks-ass.net>
On 10/06, Peter Zijlstra wrote:
>
> On Mon, Oct 06, 2014 at 02:25:09AM +0200, Oleg Nesterov wrote:
> >
> > Hmm. I specially checked Documentation/memory-barriers.txt,
> >
> > (*) smp_mb__before_atomic();
> > (*) smp_mb__after_atomic();
> >
> > These are for use with atomic (such as add, subtract, increment and
> > decrement) functions that don't return a value, especially when used for
> > reference counting. These functions do not imply memory barriers.
> >
> > These are also used for atomic bitop functions that do not return a
> > value (such as set_bit and clear_bit).
> > ^^^^^^^^^^^^^^^^^^^^^
> >
> > Either you or memory-barriers.txt should be fixed ;)
Heh.
> Its in there, just not explicitly. All those functions listed are
> read-modify-write ops, test_bit() is not, its just a read.
OOPS! I was hypnotized by "_bit" suffix, I guess.
Of course, of course, test_bit() must be a plain LOAD in any case, can't
understand what I was thinking about.
So in this particular case kthread_kill() needs smp_mb__AFTER_atomic(),
and "after" applies to set_bit(KTHREAD_SHOULD_STOP).
> --- a/Documentation/memory-barriers.txt
> +++ b/Documentation/memory-barriers.txt
> @@ -1594,12 +1594,9 @@ CPU from reordering them.
> (*) smp_mb__before_atomic();
> (*) smp_mb__after_atomic();
>
> - These are for use with atomic (such as add, subtract, increment and
> - decrement) functions that don't return a value, especially when used for
> - reference counting. These functions do not imply memory barriers.
> -
> - These are also used for atomic bitop functions that do not return a
> - value (such as set_bit and clear_bit).
> + These are for use with atomic/bitop (r-m-w) functions that don't return
> + a value (eg. atomic_{add,sub,inc,dec}(), {set,clear}_bit()). These
> + functions do not imply memory barriers.
Thanks!
Oleg.
next prev parent reply other threads:[~2014-10-06 16:24 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20140930080228.GD9561@wfg-t540p.sh.intel.com>
2014-10-02 11:09 ` [rfcomm_run] WARNING: CPU: 1 PID: 79 at kernel/sched/core.c:7156 __might_sleep() Peter Zijlstra
2014-10-02 12:31 ` Peter Zijlstra
2014-10-02 12:38 ` Peter Hurley
2014-10-02 12:54 ` Peter Zijlstra
2014-10-02 13:05 ` Peter Hurley
2014-10-02 13:41 ` Peter Zijlstra
2014-10-02 12:42 ` Peter Zijlstra
2014-10-02 13:49 ` Peter Hurley
2014-10-02 13:52 ` Peter Zijlstra
2014-10-02 13:58 ` Peter Zijlstra
2014-10-02 14:16 ` Peter Hurley
2014-10-02 16:57 ` Peter Zijlstra
2014-10-02 19:18 ` Oleg Nesterov
2014-10-02 19:11 ` Oleg Nesterov
2014-10-02 19:49 ` Peter Hurley
2014-10-02 19:57 ` Peter Zijlstra
2014-10-02 20:10 ` Oleg Nesterov
2014-10-03 11:50 ` Peter Zijlstra
2014-10-03 17:56 ` Oleg Nesterov
2014-10-03 19:30 ` Oleg Nesterov
2014-10-04 8:42 ` Peter Zijlstra
2014-10-06 0:25 ` Oleg Nesterov
2014-10-06 9:19 ` Peter Zijlstra
2014-10-06 10:59 ` Paul E. McKenney
2014-10-06 16:21 ` Oleg Nesterov [this message]
2014-10-04 8:44 ` 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=20141006162109.GA29890@redhat.com \
--to=oleg@redhat.com \
--cc=fengguang.wu@intel.com \
--cc=jet.chen@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@01.org \
--cc=marcel@holtmann.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peter@hurleysoftware.com \
--cc=peterz@infradead.org \
--cc=tao.su@intel.com \
--cc=yuanhan.liu@intel.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).