From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753502AbcCGT6K (ORCPT ); Mon, 7 Mar 2016 14:58:10 -0500 Received: from e36.co.us.ibm.com ([32.97.110.154]:58275 "EHLO e36.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752868AbcCGT6B (ORCPT ); Mon, 7 Mar 2016 14:58:01 -0500 X-IBM-Helo: d03dlp03.boulder.ibm.com X-IBM-MailFrom: paulmck@linux.vnet.ibm.com X-IBM-RcptTo: linux-doc@vger.kernel.org;linux-kernel@vger.kernel.org Date: Mon, 7 Mar 2016 11:58:00 -0800 From: "Paul E. McKenney" To: Yao Dongdong Cc: josh@joshtriplett.org, corbet@lwn.net, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Subject: Re: [PATCH] documentation: Make sample code and documentation consistent Message-ID: <20160307195800.GX3577@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <1457337734-8341-1-git-send-email-yaodongdong@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1457337734-8341-1-git-send-email-yaodongdong@huawei.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16030719-0021-0000-0000-000017CF5CCB Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 07, 2016 at 04:02:14PM +0800, Yao Dongdong wrote: > In the chapter 'analogy with reader-writer locking', the sample > code uses spinlock_t in reader-writer case. Just correct it so > that we can read the document easily. > > Signed-off-by: Yao Dongdong Good catch, queued for review. Thanx, Paul > --- > Documentation/RCU/whatisRCU.txt | 22 +++++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/Documentation/RCU/whatisRCU.txt b/Documentation/RCU/whatisRCU.txt > index dc49c67..e33304e 100644 > --- a/Documentation/RCU/whatisRCU.txt > +++ b/Documentation/RCU/whatisRCU.txt > @@ -681,22 +681,30 @@ Although RCU can be used in many different ways, a very common use of > RCU is analogous to reader-writer locking. The following unified > diff shows how closely related RCU and reader-writer locking can be. > > + @@ -5,5 +5,5 @@ struct el { > + int data; > + /* Other data fields */ > + }; > + -rwlock_t listmutex; > + +spinlock_t listmutex; > + struct el head; > + > @@ -13,15 +14,15 @@ > struct list_head *lp; > struct el *p; > > - - read_lock(); > + - read_lock(&listmutex); > - list_for_each_entry(p, head, lp) { > + rcu_read_lock(); > + list_for_each_entry_rcu(p, head, lp) { > if (p->key == key) { > *result = p->data; > - - read_unlock(); > + - read_unlock(&listmutex); > + rcu_read_unlock(); > return 1; > } > } > - - read_unlock(); > + - read_unlock(&listmutex); > + rcu_read_unlock(); > return 0; > } > @@ -732,7 +740,7 @@ Or, for those who prefer a side-by-side listing: > 5 int data; 5 int data; > 6 /* Other data fields */ 6 /* Other data fields */ > 7 }; 7 }; > - 8 spinlock_t listmutex; 8 spinlock_t listmutex; > + 8 rwlock_t listmutex; 8 spinlock_t listmutex; > 9 struct el head; 9 struct el head; > > 1 int search(long key, int *result) 1 int search(long key, int *result) > @@ -740,15 +748,15 @@ Or, for those who prefer a side-by-side listing: > 3 struct list_head *lp; 3 struct list_head *lp; > 4 struct el *p; 4 struct el *p; > 5 5 > - 6 read_lock(); 6 rcu_read_lock(); > + 6 read_lock(&listmutex); 6 rcu_read_lock(); > 7 list_for_each_entry(p, head, lp) { 7 list_for_each_entry_rcu(p, head, lp) { > 8 if (p->key == key) { 8 if (p->key == key) { > 9 *result = p->data; 9 *result = p->data; > -10 read_unlock(); 10 rcu_read_unlock(); > +10 read_unlock(&listmutex); 10 rcu_read_unlock(); > 11 return 1; 11 return 1; > 12 } 12 } > 13 } 13 } > -14 read_unlock(); 14 rcu_read_unlock(); > +14 read_unlock(&listmutex); 14 rcu_read_unlock(); > 15 return 0; 15 return 0; > 16 } 16 } > > -- > 1.7.9.5 >