Messages in this thread | | | Date | Thu, 7 Apr 2016 13:19:38 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC PATCH v6 1/5] Thread-local ABI system call: cache CPU number of running thread |
| |
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.
| |