Skip to content

eal_common_options.c:verify_perms(): remove per-thread object.#7

Open
nikitadanilov wants to merge 1 commit intospdk:spdk-21.05from
nikitadanilov:nd-verify_perms-tls
Open

eal_common_options.c:verify_perms(): remove per-thread object.#7
nikitadanilov wants to merge 1 commit intospdk:spdk-21.05from
nikitadanilov:nd-verify_perms-tls

Conversation

@nikitadanilov
Copy link
Copy Markdown

verify_perms() defines a 4KB TLS array last_dir_checked to avoid re-checking permissions on the same directory again.

This array is added to the TLS of every thread in the process. This wastes memory (a bit, arguably) and makes it impossible to use fast 'initial-exec' tls model in shared libraries linked with spdk/dpdk.

Fix: simply drop '__thread' qualifier, the code is only ever executed
during single-threaded initialisation: rte_eal_init() -> eal_plugins_init() -> eal_dlopen() -> verify_perms().

verify_perms() defines a 4KB TLS array last_dir_checked to avoid
re-checking permissions on the same directory again.

This array is added to the TLS of every thread in the process. This
wastes memory (a bit, arguably) and makes it impossible to use fast
'initial-exec' tls model in shared libraries linked with spdk/dpdk.

Fix: simply drop '__thread' qualifier, the code is only ever executed
during single-threaded initialisation: rte_eal_init() -> eal_plugins_init() -> eal_dlopen() -> verify_perms().

Signed-off-by: Nikita Danilov <ndanilov@ddn.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant