From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from are.twiddle.net ([64.81.246.98]:39314 "EHLO are.twiddle.net") by vger.kernel.org with ESMTP id S1751465AbWEJPr2 (ORCPT ); Wed, 10 May 2006 11:47:28 -0400 Date: Wed, 10 May 2006 08:47:02 -0700 From: Richard Henderson Subject: Re: [RFC/PATCH] Make powerpc64 use __thread for per-cpu variables Message-ID: <20060510154702.GA28938@twiddle.net> References: <17505.26159.807484.477212@cargo.ozlabs.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <17505.26159.807484.477212@cargo.ozlabs.ibm.com> Sender: linux-arch-owner@vger.kernel.org To: Paul Mackerras , t@twiddle.net Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linuxppc-dev@ozlabs.org List-ID: On Wed, May 10, 2006 at 02:03:59PM +1000, Paul Mackerras wrote: > With this patch, 64-bit powerpc uses __thread for per-cpu variables. How do you plan to address the compiler optimizing __thread int foo; { use(foo); schedule(); use(foo); } into { int *tmp = &foo; // tls arithmetic here use(*tmp); schedule(); use(*tmp); } Across the schedule, we may have changed cpus, making the cached address invalid. r~ From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from are.twiddle.net (are.twiddle.net [64.81.246.98]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTP id F0071679F6 for ; Thu, 11 May 2006 02:15:20 +1000 (EST) Date: Wed, 10 May 2006 08:47:13 -0700 From: Richard Henderson To: Paul Mackerras Subject: Re: [RFC/PATCH] Make powerpc64 use __thread for per-cpu variables Message-ID: <20060510154702.GA28938@twiddle.net> References: <17505.26159.807484.477212@cargo.ozlabs.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <17505.26159.807484.477212@cargo.ozlabs.ibm.com> Cc: linux-arch@vger.kernel.org, linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, May 10, 2006 at 02:03:59PM +1000, Paul Mackerras wrote: > With this patch, 64-bit powerpc uses __thread for per-cpu variables. How do you plan to address the compiler optimizing __thread int foo; { use(foo); schedule(); use(foo); } into { int *tmp = &foo; // tls arithmetic here use(*tmp); schedule(); use(*tmp); } Across the schedule, we may have changed cpus, making the cached address invalid. r~ From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964980AbWEJPri (ORCPT ); Wed, 10 May 2006 11:47:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751490AbWEJPri (ORCPT ); Wed, 10 May 2006 11:47:38 -0400 Received: from are.twiddle.net ([64.81.246.98]:39570 "EHLO are.twiddle.net") by vger.kernel.org with ESMTP id S1751465AbWEJPrh (ORCPT ); Wed, 10 May 2006 11:47:37 -0400 Date: Wed, 10 May 2006 08:47:13 -0700 From: Richard Henderson To: Paul Mackerras Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linuxppc-dev@ozlabs.org Subject: Re: [RFC/PATCH] Make powerpc64 use __thread for per-cpu variables Message-ID: <20060510154702.GA28938@twiddle.net> Mail-Followup-To: Paul Mackerras , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linuxppc-dev@ozlabs.org References: <17505.26159.807484.477212@cargo.ozlabs.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <17505.26159.807484.477212@cargo.ozlabs.ibm.com> User-Agent: Mutt/1.4.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 10, 2006 at 02:03:59PM +1000, Paul Mackerras wrote: > With this patch, 64-bit powerpc uses __thread for per-cpu variables. How do you plan to address the compiler optimizing __thread int foo; { use(foo); schedule(); use(foo); } into { int *tmp = &foo; // tls arithmetic here use(*tmp); schedule(); use(*tmp); } Across the schedule, we may have changed cpus, making the cached address invalid. r~