Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752065AbdLEVg5 (ORCPT ); Tue, 5 Dec 2017 16:36:57 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:47588 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751421AbdLEVgv (ORCPT ); Tue, 5 Dec 2017 16:36:51 -0500 Date: Tue, 5 Dec 2017 13:36:44 -0800 From: "Paul E. McKenney" To: "Michael S. Tsirkin" Cc: Peter Zijlstra , linux-kernel@vger.kernel.org, mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, Jason Wang , kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org Subject: Re: [PATCH tip/core/rcu 21/21] drivers/vhost: Remove now-redundant read_barrier_depends() Reply-To: paulmck@linux.vnet.ibm.com References: <1512157876-24665-21-git-send-email-paulmck@linux.vnet.ibm.com> <20171205202928-mutt-send-email-mst@kernel.org> <20171205183946.GP3165@worktop.lehotels.local> <20171205204928-mutt-send-email-mst@kernel.org> <20171205191733.GQ3165@worktop.lehotels.local> <20171205212053-mutt-send-email-mst@kernel.org> <20171205193339.GP7829@linux.vnet.ibm.com> <20171205215020-mutt-send-email-mst@kernel.org> <20171205200801.GR7829@linux.vnet.ibm.com> <20171205222857-mutt-send-email-mst@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171205222857-mutt-send-email-mst@kernel.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17120521-0024-0000-0000-000002FD4296 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008155; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000243; SDB=6.00955946; UDB=6.00483182; IPR=6.00735983; BA=6.00005729; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00018368; XFM=3.00000015; UTC=2017-12-05 21:36:49 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17120521-0025-0000-0000-0000463B8E49 Message-Id: <20171205213644.GU7829@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-12-05_08:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1712050308 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1624 Lines: 37 On Tue, Dec 05, 2017 at 11:24:49PM +0200, Michael S. Tsirkin wrote: > On Tue, Dec 05, 2017 at 12:08:01PM -0800, Paul E. McKenney wrote: > > On Tue, Dec 05, 2017 at 09:51:48PM +0200, Michael S. Tsirkin wrote: > > > On Tue, Dec 05, 2017 at 11:33:39AM -0800, Paul E. McKenney wrote: > > > > On Tue, Dec 05, 2017 at 09:24:21PM +0200, Michael S. Tsirkin wrote: > > > > [ . . . ] > > > > > > > and this barrier is no longer paired with anything until > > > > > you realize there's a dependency barrier within READ_ONCE. > > > > > > > > > > Barrier pairing was a useful tool to check code validity, > > > > > maybe there are other, better tools now. > > > > > > > > There are quite a few people who say that smp_store_release() is > > > > easier for the tools to analyze than is smp_wmb(). My experience with > > > > smp_read_barrier_depends() and rcu_dereference() leads me to believe > > > > that they are correct. > > > > > > OK, but smp_store_release is still not paired with anything since we > > > rely on READ_ONCE to include the implicit dpendendency barrier. > > > > Why wouldn't you consider the smp_store_release() to be paired with > > the new improved READ_ONCE()? > > READ_ONCE is really all over the place (some code literally replaced all > memory accesses with READ/WRITE ONCE). > > And I also prefer smp_wmb as it seems to be cheaper on ARM. > > Would an API like WRITE_POINTER()/smp_store_pointer make sense, > and READ_POINTER for symmetry? What we do in some code is to comment the pairings, allowing the other side of the pairing to be easily located. Would that work for you? Thanx, Paul