summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/prog_tests/access_variable_array.c
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-02-07 10:17:54 +0100
committerChristian Brauner <brauner@kernel.org>2025-02-07 11:22:44 +0100
commit0a7713ac0d98d02f2c69145754c93715ab07b307 (patch)
tree4eccbd49259e181f1a57e14b6ef89f276daae49e /tools/testing/selftests/bpf/prog_tests/access_variable_array.c
parent33be3ffd30b3ae67c7a1a405f98b963fd915d61a (diff)
parent627454c0f6708cb79dc58332e8033b8fa904c999 (diff)
downloadlwn-0a7713ac0d98d02f2c69145754c93715ab07b307.tar.gz
lwn-0a7713ac0d98d02f2c69145754c93715ab07b307.zip
Merge patch series "reduce tasklist_lock hold time on exit and do some pid cleanup"
Mateusz Guzik <mjguzik@gmail.com> says: The clone side contends against exit side in a way which avoidably exacerbates the problem by the latter waiting on locks held by the former while holding the tasklist_lock. Whacking this for both add_device_randomness and pids allocation gives me a 15% speed up for thread creation/destruction in a 24-core vm. The random patch is worth about 4%. The new bottleneck is pidmap_lock itself, with the biggest problem being the allocation itself taking the lock *twice*. Bench (plop into will-it-scale): $ cat tests/threadspawn1.c char *testcase_description = "Thread creation and teardown"; static void *worker(void *arg) { return (NULL); } void testcase(unsigned long long *iterations, unsigned long nr) { pthread_t thread; int error; while (1) { error = pthread_create(&thread, NULL, worker, NULL); assert(error == 0); error = pthread_join(thread, NULL); assert(error == 0); (*iterations)++; } } * patches from https://lore.kernel.org/r/20250206164415.450051-1-mjguzik@gmail.com: pid: drop irq disablement around pidmap_lock pid: perform free_pid() calls outside of tasklist_lock pid: sprinkle tasklist_lock asserts exit: hoist get_pid() in release_task() outside of tasklist_lock exit: perform add_device_randomness() without tasklist_lock Link: https://lore.kernel.org/r/20250206164415.450051-1-mjguzik@gmail.com Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/access_variable_array.c')
0 files changed, 0 insertions, 0 deletions