Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760703AbYGJRc5 (ORCPT ); Thu, 10 Jul 2008 13:32:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1760594AbYGJRcn (ORCPT ); Thu, 10 Jul 2008 13:32:43 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:42258 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760586AbYGJRcn (ORCPT ); Thu, 10 Jul 2008 13:32:43 -0400 Message-ID: <48764783.6030201@linux-foundation.org> Date: Thu, 10 Jul 2008 12:31:47 -0500 From: Christoph Lameter User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: Jeremy Fitzhardinge CC: "H. Peter Anvin" , Mike Travis , "Eric W. Biederman" , Arjan van de Ven , Ingo Molnar , Andrew Morton , Jack Steiner , linux-kernel@vger.kernel.org, Rusty Russell Subject: Re: [RFC 00/15] x86_64: Optimize percpu accesses References: <20080709165129.292635000@polaris-admin.engr.sgi.com> <20080709200757.GD14009@elte.hu> <48751B57.8030605@goop.org> <20080709133958.612635f0@infradead.org> <4875231F.1020506@zytor.com> <487524A0.6020304@goop.org> <487529AE.3060505@zytor.com> <48753A71.2030006@zytor.com> <48763732.7020805@sgi.com> <487637DE.1050706@zytor.com> <48763A5E.7080105@linux-foundation.org> <48763B36.80104@zytor.com> <48763D1C.8040206@linux-foundation.org> <48764530.7000909@goop.org> In-Reply-To: <48764530.7000909@goop.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1187 Lines: 32 Jeremy Fitzhardinge wrote: > > The base address of the percpu area and the offsets from that base are > completely independent values. Definitely. > The addressing modes: > > * ABS > * off(%rip) > > Are exactly equivalent in what offsets they can generate, so long as *at > link time* the percpu *symbols* are within 2G of the code addressing > them. *After* the addressing mode has generated an effective address > (by whatever means it likes), the %gs: override applies the segment > base, which can therefore offset the effective address to anywhere at all. Right. The problem is with the percpu area handled by the linker. That percpu area is used by the boot cpu and later we setup other additional per cpu areas. Those can be placed in an arbitrary way if one goes through a table of pointers to these areas. However, that does not work if one calculates the virtual address instead of looking up a physical address. -- 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/