* [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq @ 2019-06-27 21:01 Jiunn Chang 2019-06-27 22:01 ` Shuah Khan 2019-06-28 15:11 ` Jonathan Corbet 0 siblings, 2 replies; 7+ messages in thread From: Jiunn Chang @ 2019-06-27 21:01 UTC (permalink / raw) To: skhan Cc: linux-kernel-mentees, paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, corbet, rcu, linux-doc, linux-kernel The UP.rst file calls for locks acquired within RCU callback functions to use _irq variants (spin_lock_irqsave() or similar), which does work, but can be overkill. This commit therefore instead calls for _bh variants (spin_lock_bh() or similar), while noting that _irq does work. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com> --- Documentation/RCU/UP.rst | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Documentation/RCU/UP.rst b/Documentation/RCU/UP.rst index 67715a47ae89..e26dda27430c 100644 --- a/Documentation/RCU/UP.rst +++ b/Documentation/RCU/UP.rst @@ -113,12 +113,13 @@ Answer to Quick Quiz #1: Answer to Quick Quiz #2: What locking restriction must RCU callbacks respect? - Any lock that is acquired within an RCU callback must be - acquired elsewhere using an _irq variant of the spinlock - primitive. For example, if "mylock" is acquired by an - RCU callback, then a process-context acquisition of this - lock must use something like spin_lock_irqsave() to - acquire the lock. + Any lock that is acquired within an RCU callback must be acquired + elsewhere using an _bh variant of the spinlock primitive. + For example, if "mylock" is acquired by an RCU callback, then + a process-context acquisition of this lock must use something + like spin_lock_bh() to acquire the lock. Please note that + it is also OK to use _irq variants of spinlocks, for example, + spin_lock_irqsave(). If the process-context code were to simply use spin_lock(), then, since RCU callbacks can be invoked from softirq context, -- 2.22.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq 2019-06-27 21:01 [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq Jiunn Chang @ 2019-06-27 22:01 ` Shuah Khan 2019-06-27 22:10 ` Paul E. McKenney 2019-06-28 15:11 ` Jonathan Corbet 1 sibling, 1 reply; 7+ messages in thread From: Shuah Khan @ 2019-06-27 22:01 UTC (permalink / raw) To: Jiunn Chang Cc: linux-kernel-mentees, paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, corbet, rcu, linux-doc, linux-kernel, skh >> Shuah Khan On 6/27/19 3:01 PM, Jiunn Chang wrote: > The UP.rst file calls for locks acquired within RCU callback functions > to use _irq variants (spin_lock_irqsave() or similar), which does work, > but can be overkill. This commit therefore instead calls for _bh variants > (spin_lock_bh() or similar), while noting that _irq does work. > > Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> Should this by Suggested-by? > Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com> > --- > Documentation/RCU/UP.rst | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/Documentation/RCU/UP.rst b/Documentation/RCU/UP.rst > index 67715a47ae89..e26dda27430c 100644 > --- a/Documentation/RCU/UP.rst > +++ b/Documentation/RCU/UP.rst > @@ -113,12 +113,13 @@ Answer to Quick Quiz #1: > Answer to Quick Quiz #2: > What locking restriction must RCU callbacks respect? > > - Any lock that is acquired within an RCU callback must be > - acquired elsewhere using an _irq variant of the spinlock > - primitive. For example, if "mylock" is acquired by an > - RCU callback, then a process-context acquisition of this > - lock must use something like spin_lock_irqsave() to > - acquire the lock. > + Any lock that is acquired within an RCU callback must be acquired > + elsewhere using an _bh variant of the spinlock primitive. > + For example, if "mylock" is acquired by an RCU callback, then > + a process-context acquisition of this lock must use something > + like spin_lock_bh() to acquire the lock. Please note that > + it is also OK to use _irq variants of spinlocks, for example, > + spin_lock_irqsave(). > > If the process-context code were to simply use spin_lock(), > then, since RCU callbacks can be invoked from softirq context, > thanks, -- Shuah ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq 2019-06-27 22:01 ` Shuah Khan @ 2019-06-27 22:10 ` Paul E. McKenney 2019-06-27 22:11 ` Shuah Khan 2019-06-27 22:29 ` Steven Rostedt 0 siblings, 2 replies; 7+ messages in thread From: Paul E. McKenney @ 2019-06-27 22:10 UTC (permalink / raw) To: Shuah Khan Cc: Jiunn Chang, linux-kernel-mentees, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, corbet, rcu, linux-doc, linux-kernel On Thu, Jun 27, 2019 at 04:01:35PM -0600, Shuah Khan wrote: > On 6/27/19 3:01 PM, Jiunn Chang wrote: > >The UP.rst file calls for locks acquired within RCU callback functions > >to use _irq variants (spin_lock_irqsave() or similar), which does work, > >but can be overkill. This commit therefore instead calls for _bh variants > >(spin_lock_bh() or similar), while noting that _irq does work. > > > >Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> > > Should this by Suggested-by? I wrote it and Jiunn converted my change to .rst, so I believe that this is correct as is. Thanx, Paul > >Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com> > >--- > > Documentation/RCU/UP.rst | 13 +++++++------ > > 1 file changed, 7 insertions(+), 6 deletions(-) > > > >diff --git a/Documentation/RCU/UP.rst b/Documentation/RCU/UP.rst > >index 67715a47ae89..e26dda27430c 100644 > >--- a/Documentation/RCU/UP.rst > >+++ b/Documentation/RCU/UP.rst > >@@ -113,12 +113,13 @@ Answer to Quick Quiz #1: > > Answer to Quick Quiz #2: > > What locking restriction must RCU callbacks respect? > >- Any lock that is acquired within an RCU callback must be > >- acquired elsewhere using an _irq variant of the spinlock > >- primitive. For example, if "mylock" is acquired by an > >- RCU callback, then a process-context acquisition of this > >- lock must use something like spin_lock_irqsave() to > >- acquire the lock. > >+ Any lock that is acquired within an RCU callback must be acquired > >+ elsewhere using an _bh variant of the spinlock primitive. > >+ For example, if "mylock" is acquired by an RCU callback, then > >+ a process-context acquisition of this lock must use something > >+ like spin_lock_bh() to acquire the lock. Please note that > >+ it is also OK to use _irq variants of spinlocks, for example, > >+ spin_lock_irqsave(). > > If the process-context code were to simply use spin_lock(), > > then, since RCU callbacks can be invoked from softirq context, > > > > thanks, > -- Shuah > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq 2019-06-27 22:10 ` Paul E. McKenney @ 2019-06-27 22:11 ` Shuah Khan 2019-06-27 22:29 ` Steven Rostedt 1 sibling, 0 replies; 7+ messages in thread From: Shuah Khan @ 2019-06-27 22:11 UTC (permalink / raw) To: paulmck Cc: Jiunn Chang, linux-kernel-mentees, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, corbet, rcu, linux-doc, linux-kernel, skh >> Shuah Khan On 6/27/19 4:10 PM, Paul E. McKenney wrote: > On Thu, Jun 27, 2019 at 04:01:35PM -0600, Shuah Khan wrote: >> On 6/27/19 3:01 PM, Jiunn Chang wrote: >>> The UP.rst file calls for locks acquired within RCU callback functions >>> to use _irq variants (spin_lock_irqsave() or similar), which does work, >>> but can be overkill. This commit therefore instead calls for _bh variants >>> (spin_lock_bh() or similar), while noting that _irq does work. >>> >>> Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> >> >> Should this by Suggested-by? > > I wrote it and Jiunn converted my change to .rst, so I believe that > this is correct as is. > Great. thanks, -- Shuah ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq 2019-06-27 22:10 ` Paul E. McKenney 2019-06-27 22:11 ` Shuah Khan @ 2019-06-27 22:29 ` Steven Rostedt 2019-06-27 22:42 ` Paul E. McKenney 1 sibling, 1 reply; 7+ messages in thread From: Steven Rostedt @ 2019-06-27 22:29 UTC (permalink / raw) To: Paul E. McKenney Cc: Shuah Khan, Jiunn Chang, linux-kernel-mentees, josh, mathieu.desnoyers, jiangshanlai, joel, corbet, rcu, linux-doc, linux-kernel On Thu, 27 Jun 2019 15:10:45 -0700 "Paul E. McKenney" <paulmck@linux.ibm.com> wrote: > On Thu, Jun 27, 2019 at 04:01:35PM -0600, Shuah Khan wrote: > > On 6/27/19 3:01 PM, Jiunn Chang wrote: > > >The UP.rst file calls for locks acquired within RCU callback functions > > >to use _irq variants (spin_lock_irqsave() or similar), which does work, > > >but can be overkill. This commit therefore instead calls for _bh variants > > >(spin_lock_bh() or similar), while noting that _irq does work. > > > > > >Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> > > > > Should this by Suggested-by? > > I wrote it and Jiunn converted my change to .rst, so I believe that > this is correct as is. Note, you did send Jiunn an explicit Signed-off-by when you wrote it, correct? As Signed-off-by is equivalent to a signature. -- Steve ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq 2019-06-27 22:29 ` Steven Rostedt @ 2019-06-27 22:42 ` Paul E. McKenney 0 siblings, 0 replies; 7+ messages in thread From: Paul E. McKenney @ 2019-06-27 22:42 UTC (permalink / raw) To: Steven Rostedt Cc: Shuah Khan, Jiunn Chang, linux-kernel-mentees, josh, mathieu.desnoyers, jiangshanlai, joel, corbet, rcu, linux-doc, linux-kernel On Thu, Jun 27, 2019 at 06:29:38PM -0400, Steven Rostedt wrote: > On Thu, 27 Jun 2019 15:10:45 -0700 > "Paul E. McKenney" <paulmck@linux.ibm.com> wrote: > > > On Thu, Jun 27, 2019 at 04:01:35PM -0600, Shuah Khan wrote: > > > On 6/27/19 3:01 PM, Jiunn Chang wrote: > > > >The UP.rst file calls for locks acquired within RCU callback functions > > > >to use _irq variants (spin_lock_irqsave() or similar), which does work, > > > >but can be overkill. This commit therefore instead calls for _bh variants > > > >(spin_lock_bh() or similar), while noting that _irq does work. > > > > > > > >Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> > > > > > > Should this by Suggested-by? > > > > I wrote it and Jiunn converted my change to .rst, so I believe that > > this is correct as is. > > Note, you did send Jiunn an explicit Signed-off-by when you wrote it, > correct? As Signed-off-by is equivalent to a signature. Indeed I did, but I now see that it was via private email. Here it is again for public consumption, and Jiunn's patch is based on this one, just translated to .rst. I once again verified that the Jiunn's version is word-for-word identical to mine, so Jiunn's patch should be good. ;-) Thanx, Paul ------------------------------------------------------------------------ commit a293734a310b463a0dba68409943a4e6065cd39d Author: Paul E. McKenney <paulmck@linux.ibm.com> Date: Wed Jun 26 10:16:19 2019 -0700 doc: RCU callback locks need only _bh, not necessarily _irq The UP.txt file calls for locks acquired within RCU callback functions to use _irq variants (spin_lock_irqsave() or similar), which does work, but can be overkill. This commit therefore instead calls for _bh variants (spin_lock_bh() or similar), while noting that _irq does work. Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> diff --git a/Documentation/RCU/UP.txt b/Documentation/RCU/UP.txt index 53bde717017b..0edd8c5af0b5 100644 --- a/Documentation/RCU/UP.txt +++ b/Documentation/RCU/UP.txt @@ -104,12 +104,13 @@ Answer to Quick Quiz #1: Answer to Quick Quiz #2: What locking restriction must RCU callbacks respect? - Any lock that is acquired within an RCU callback must be - acquired elsewhere using an _irq variant of the spinlock - primitive. For example, if "mylock" is acquired by an - RCU callback, then a process-context acquisition of this - lock must use something like spin_lock_irqsave() to - acquire the lock. + Any lock that is acquired within an RCU callback must be acquired + elsewhere using an _bh variant of the spinlock primitive. + For example, if "mylock" is acquired by an RCU callback, then + a process-context acquisition of this lock must use something + like spin_lock_bh() to acquire the lock. Please note that + it is also OK to use _irq variants of spinlocks, for example, + spin_lock_irqsave(). If the process-context code were to simply use spin_lock(), then, since RCU callbacks can be invoked from softirq context, ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq 2019-06-27 21:01 [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq Jiunn Chang 2019-06-27 22:01 ` Shuah Khan @ 2019-06-28 15:11 ` Jonathan Corbet 1 sibling, 0 replies; 7+ messages in thread From: Jonathan Corbet @ 2019-06-28 15:11 UTC (permalink / raw) To: Jiunn Chang Cc: skhan, linux-kernel-mentees, paulmck, josh, rostedt, mathieu.desnoyers, jiangshanlai, joel, rcu, linux-doc, linux-kernel On Thu, 27 Jun 2019 16:01:47 -0500 Jiunn Chang <c0d1n61at3@gmail.com> wrote: > The UP.rst file calls for locks acquired within RCU callback functions > to use _irq variants (spin_lock_irqsave() or similar), which does work, > but can be overkill. This commit therefore instead calls for _bh variants > (spin_lock_bh() or similar), while noting that _irq does work. > > Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com> > Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com> > --- > Documentation/RCU/UP.rst | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) Applied, thanks. jon ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-06-28 15:11 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-06-27 21:01 [Linux-kernel-mentees][PATCH] doc: RCU callback locks need only _bh, not necessarily _irq Jiunn Chang 2019-06-27 22:01 ` Shuah Khan 2019-06-27 22:10 ` Paul E. McKenney 2019-06-27 22:11 ` Shuah Khan 2019-06-27 22:29 ` Steven Rostedt 2019-06-27 22:42 ` Paul E. McKenney 2019-06-28 15:11 ` Jonathan Corbet
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).