[dpdk-dev] [PATCH v9 2/2] eal: add generic thread-local-storage functions
talshn at nvidia.com
Thu Feb 11 08:26:24 CET 2021
> Subject: Re: [dpdk-dev] [PATCH v9 2/2] eal: add generic thread-local-storage
> External email: Use caution opening links or attachments
> On 06-Jan-21 8:35 PM, Tal Shnaiderman wrote:
> > Add support for TLS functionality in EAL.
> > The following functions are added:
> > rte_thread_tls_key_create - create a TLS data key.
> > rte_thread_tls_key_delete - delete a TLS data key.
> > rte_thread_tls_value_set - set value bound to the TLS key
> > rte_thread_tls_value_get - get value bound to the TLS key
> > TLS key is defined by the new type rte_tls_key.
> > The API allocates the thread local storage (TLS) key.
> > Any thread of the process can subsequently use this key to store and
> > retrieve values that are local to the thread.
> > Those functions are added in addition to TLS capability in
> > rte_per_lcore.h to allow abstraction of the pthread layer for all
> > operating systems.
> > Windows implementation is under librte_eal/windows and implemented
> > using WIN32 API for Windows only.
> > Unix implementation is under librte_eal/unix and implemented using
> > pthread for UNIX compilation.
> > Signed-off-by: Tal Shnaiderman <talshn at nvidia.com>
> > ---
> I'm a bit late to the party as the patch has been merged already, but perhaps
> as a further enhancement, you could add rte_errno setting for errors? You
> seem to have it only for get() API but not for others, and you pass
> pthread_setspecific()'s return value unmodified, even though it might return
> an error. Presumably, these error codes would be different on Unix and
> Windows, so return values would effectively be potentially different on
> different OS's, so perhaps it's better to return -1 with rte_errno to indicate
> which specific error was seen.
Thanks Anatoly, I'll add the error codes to rte_errno in 21.05.
More information about the dev