From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Paul E. McKenney" Subject: Re: [PATCH RFC] locking: Add volatile to arch_spinlock_t structures Date: Wed, 3 Dec 2014 23:02:48 -0800 Message-ID: <20141204070248.GJ25340@linux.vnet.ibm.com> References: <20141204062005.GA2553@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from e32.co.us.ibm.com ([32.97.110.150]:34638 "EHLO e32.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751928AbaLDHC4 (ORCPT ); Thu, 4 Dec 2014 02:02:56 -0500 Received: from /spool/local by e32.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 4 Dec 2014 00:02:56 -0700 Content-Disposition: inline In-Reply-To: Sender: linux-arch-owner@vger.kernel.org List-ID: To: Linus Torvalds Cc: linux-arch@vger.kernel.org, Davidlohr Bueso , dvyukov@google.com, peterz@infradead.org, linux-kernel@vger.kernel.org, Ingo Molnar On Wed, Dec 03, 2014 at 10:40:45PM -0800, Linus Torvalds wrote: > On Dec 3, 2014 10:31 PM, "Linus Torvalds" > wrote: > > > > So no, no, no. C got this wrong. Volatile data structures are a > fundamental mistake and a bug. > > BTW, I'm not at all interested in language lawyering and people who say > "but but we can do x". A compiler that modifies adjacent fields because the > standard leaves is open is a crap compiler, and we won't use it, or disable > the broken optimization. It is wrong from a concurrency standpoint anyway, > and adding broken volatiles is just making things worse. Understood, for example, adjacent fields protected by different locks as one example, where adjacent-field overwriting completely breaks even very conservatively designed code. Should be entertaining! ;-) Thanx, Paul