Re: [PATCH] Add thread-local storage for POSIX-y platforms.
[Thread Prev] | [Thread Next]
[Date Prev] | [Date Next]
- Subject: Re: [PATCH] Add thread-local storage for POSIX-y platforms.
- From: Ori Bernstein <ori@xxxxxxxxxxxxxx>
- Reply-to: myrddin-dev@xxxxxxxxxxxxxx
- Date: Fri, 26 Oct 2018 23:08:35 -0700
- To: myrddin-dev@xxxxxxxxxxxxxx
- Cc: iriri <iri@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
On Sat, 13 Oct 2018 13:58:52 -0700, iriri <iri@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> This patch implements thread-local storage by using a segment register
> to store pointers to regions of memory unique to each thread. In spawned
> threads, this region starts above the top of the stack, while in the
> main thread, this region is initially statically allocated so it can be
> used in `__init__` functions and dynamically reallocated if it needs to
> grow beyond 8 slots. The api consists of 3 functions: `tlsalloc()`,
> which must be called from the main thread, allocates a slot and returns
> a key to be used with `settls(k, v)` and `gettls(k)`. Each thread
> inherits its tls slots from the thread that spawned it and any slot
> added after a given thread is spawned is not available in that thread.
>
> Adding tls regions gives threads an easy way to get their own tids,
> allowing us to add some basic correctness checks to the mutex code. A
> pointer to the base of the stack and the size of the mapping are also
> stored in the tls region, making it easy to support user-specified stack
> sizes in the future.
>
> Changes from previous version:
> - Fixed size of main tls static allocation.
> - More comments, less magic.
> - Fixed typo in start+osx-x64.s exit+{freebsd,linux,openbsd}-x64.s
> - `gettlskey` renamed to `tlsalloc`.
> - `key` is now `tlskey(@a#)`, improving safety.
> - Test is slightly less bad.
Merged.
--
Ori Bernstein
| [PATCH] Add thread-local storage for POSIX-y platforms. | iriri <iri@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> |
| [PATCH] Add thread-local storage for POSIX-y platforms. | iriri <iri@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> |
| Re: [PATCH] Add thread-local storage for POSIX-y platforms. | Ori Bernstein <ori@xxxxxxxxxxxxxx> |
| [PATCH] Add thread-local storage for POSIX-y platforms. | iriri <iri@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> |
- Prev by Date: Re: [PATCH] Add thread-local storage for POSIX-y platforms.
- Previous by thread: Re: [PATCH] Add thread-local storage for POSIX-y platforms.
- Index(es):