Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936015AbXHOUgu (ORCPT ); Wed, 15 Aug 2007 16:36:50 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753650AbXHOUgf (ORCPT ); Wed, 15 Aug 2007 16:36:35 -0400 Received: from gate.crashing.org ([63.228.1.57]:38916 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751658AbXHOUgd (ORCPT ); Wed, 15 Aug 2007 16:36:33 -0400 In-Reply-To: <20070815162722.GD9645@linux.vnet.ibm.com> References: <46C2350A.1010807@redhat.com> <20070815081841.GA16551@osiris.boeblingen.de.ibm.com> <46C30540.2070603@s5r6.in-berlin.de> <20070815145207.GA23106@gondor.apana.org.au> <46C3253F.5090707@s5r6.in-berlin.de> <20070815162722.GD9645@linux.vnet.ibm.com> Mime-Version: 1.0 (Apple Message framework v623) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit Cc: horms@verge.net.au, Stefan Richter , Satyam Sharma , Linux Kernel Mailing List , rpjday@mindspring.com, netdev@vger.kernel.org, ak@suse.de, cfriesen@nortel.com, Heiko Carstens , jesper.juhl@gmail.com, linux-arch@vger.kernel.org, Andrew Morton , zlynx@acm.org, clameter@sgi.com, schwidefsky@de.ibm.com, Chris Snook , Herbert Xu , davem@davemloft.net, Linus Torvalds , wensong@linux-vs.org, wjiang@resilience.com From: Segher Boessenkool Subject: Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures Date: Wed, 15 Aug 2007 20:31:25 +0200 To: paulmck@linux.vnet.ibm.com X-Mailer: Apple Mail (2.623) Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1114 Lines: 29 >> How does the compiler know that msleep() has got barrier()s? > > Because msleep_interruptible() is in a separate compilation unit, > the compiler has to assume that it might modify any arbitrary global. No; compilation units have nothing to do with it, GCC can optimise across compilation unit boundaries just fine, if you tell it to compile more than one compilation unit at once. What you probably mean is that the compiler has to assume any code it cannot currently see can do anything (insofar as allowed by the relevant standards etc.) > In many cases, the compiler also has to assume that > msleep_interruptible() > might call back into a function in the current compilation unit, thus > possibly modifying global static variables. It most often is smart enough to see what compilation-unit-local variables might be modified that way, though :-) Segher - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/