Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755557AbcDGLUE (ORCPT ); Thu, 7 Apr 2016 07:20:04 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:43606 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752838AbcDGLUB (ORCPT ); Thu, 7 Apr 2016 07:20:01 -0400 Date: Thu, 7 Apr 2016 13:19:38 +0200 From: Peter Zijlstra To: Florian Weimer Cc: Mathieu Desnoyers , "H. Peter Anvin" , Andrew Morton , Russell King , Thomas Gleixner , Ingo Molnar , linux-kernel@vger.kernel.org, linux-api , Paul Turner , Andrew Hunter , Andy Lutomirski , Andi Kleen , Dave Watson , Chris Lameter , Ben Maurer , rostedt , "Paul E. McKenney" , Josh Triplett , Linus Torvalds , Catalin Marinas , Will Deacon , Michael Kerrisk , Boqun Feng Subject: Re: [RFC PATCH v6 1/5] Thread-local ABI system call: cache CPU number of running thread Message-ID: <20160407111938.GR3430@twins.programming.kicks-ass.net> References: <1459789313-4917-1-git-send-email-mathieu.desnoyers@efficios.com> <1459789313-4917-2-git-send-email-mathieu.desnoyers@efficios.com> <5702A037.60200@zytor.com> <492303698.44994.1459799188052.JavaMail.zimbra@efficios.com> <856357054.45028.1459802903401.JavaMail.zimbra@efficios.com> <5703E191.2040707@redhat.com> <20160405164722.GB3430@twins.programming.kicks-ass.net> <570621E5.7060306@redhat.com> <20160407103158.GP3430@twins.programming.kicks-ass.net> <570638D9.7010108@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <570638D9.7010108@redhat.com> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1171 Lines: 31 On Thu, Apr 07, 2016 at 12:39:21PM +0200, Florian Weimer wrote: > On 04/07/2016 12:31 PM, Peter Zijlstra wrote: > > On Thu, Apr 07, 2016 at 11:01:25AM +0200, Florian Weimer wrote: > >>> Because ideally this structure would be part of the initial (glibc) TCB > >>> with fixed offset etc. > >> > >> This is not possible because we have layering violations and code > >> assumes it knows the precise of the glibc TCB. I think Address > >> Sanitizer is in this category. This means we cannot adjust the TCB size > >> based on the kernel headers used to compile glibc, and there will have > >> to be some indirection. > > > > So with the proposed fixed sized object it would work, right? > > I didn't see a proposal for a fixed size buffer, in the sense that the > size of struct sockaddr_in is fixed. This thing proposed a single 64byte structure (with the possibility of eventually adding more 64byte structures). Basically: struct tlabi { union { __u8[64] __foo; struct { /* fields go here */ }; }; } __aligned__(64); People objected against the fixed size scheme, but it being possible to get a fixed TCB offset and reduce indirections is a big win IMO.