linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Florian Weimer <fweimer@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Russell King <linux@arm.linux.org.uk>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	linux-kernel@vger.kernel.org,
	linux-api <linux-api@vger.kernel.org>,
	Paul Turner <pjt@google.com>, Andrew Hunter <ahh@google.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Andi Kleen <andi@firstfloor.org>,
	Dave Watson <davejwatson@fb.com>, Chris Lameter <cl@linux.com>,
	Ben Maurer <bmaurer@fb.com>, rostedt <rostedt@goodmis.org>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Josh Triplett <josh@joshtriplett.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Michael Kerrisk <mtk.manpages@gmail.com>,
	Boqun Feng <boqun.feng@gmail.com>
Subject: Re: [RFC PATCH v6 1/5] Thread-local ABI system call: cache CPU number of running thread
Date: Thu, 7 Apr 2016 14:03:53 +0200	[thread overview]
Message-ID: <57064CA9.101@redhat.com> (raw)
In-Reply-To: <20160407111938.GR3430@twins.programming.kicks-ass.net>

On 04/07/2016 01:19 PM, Peter Zijlstra wrote:
> 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);

That's not really “fixed size” as far as an ABI is concerned, due to the
possibility of future extensions.

> 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.

It's a difficult trade-off.  It's not an indirection as such, it's avoid
loading the dynamic TLS offset.

Let me repeat that the ELF TLS GNU ABI has very limited support for
static offsets at present, and it is difficult to make them available
more widely without code generation at run time (in the form of text
relocations, but still).

Florian

  reply	other threads:[~2016-04-07 12:04 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-04 17:01 [RFC PATCH v6 0/5] Thread-local ABI system call (CPU number cache) Mathieu Desnoyers
2016-04-04 17:01 ` [RFC PATCH v6 1/5] Thread-local ABI system call: cache CPU number of running thread Mathieu Desnoyers
2016-04-04 17:11   ` H. Peter Anvin
2016-04-04 19:46     ` Mathieu Desnoyers
2016-04-04 20:48       ` Mathieu Desnoyers
2016-04-05 16:02         ` Florian Weimer
2016-04-05 16:47           ` Peter Zijlstra
2016-04-07  9:01             ` Florian Weimer
2016-04-07 10:31               ` Peter Zijlstra
2016-04-07 10:39                 ` Florian Weimer
2016-04-07 11:19                   ` Peter Zijlstra
2016-04-07 12:03                     ` Florian Weimer [this message]
2016-04-07 12:25                       ` Peter Zijlstra
2016-04-07 12:37                         ` Florian Weimer
2016-04-07 15:59                         ` Mathieu Desnoyers
2016-04-07 12:34                       ` Mathieu Desnoyers
2016-04-07 16:39                     ` Linus Torvalds
2016-04-07 16:46                       ` Andy Lutomirski
2016-04-07 16:50                       ` Florian Weimer
2016-04-07 16:59                         ` Linus Torvalds
2016-04-07 16:52                       ` Linus Torvalds
2016-04-07 18:43                         ` Mathieu Desnoyers
2016-04-07 20:22                           ` Andi Kleen
2016-04-07 20:55                             ` Mathieu Desnoyers
2016-04-07 10:40   ` Florian Weimer
2016-04-04 17:01 ` [RFC PATCH v6 2/5] Thread-local ABI cpu_id: ARM resume notifier Mathieu Desnoyers
2016-04-04 17:01 ` [RFC PATCH v6 3/5] Thread-local ABI: wire up ARM system call Mathieu Desnoyers
2016-04-04 17:01 ` [RFC PATCH v6 4/5] Thread-local ABI cpu_id: x86 32/64 resume notifier Mathieu Desnoyers
2016-04-04 17:01 ` [RFC PATCH v6 5/5] Thread-local ABI: wire up x86 32/64 system call Mathieu Desnoyers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57064CA9.101@redhat.com \
    --to=fweimer@redhat.com \
    --cc=ahh@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=bmaurer@fb.com \
    --cc=boqun.feng@gmail.com \
    --cc=catalin.marinas@arm.com \
    --cc=cl@linux.com \
    --cc=davejwatson@fb.com \
    --cc=hpa@zytor.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=luto@amacapital.net \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@redhat.com \
    --cc=mtk.manpages@gmail.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).