perf threads: Reduce table size from 256 to 8
authorIan Rogers <irogers@google.com>
Fri, 1 Mar 2024 05:36:45 +0000 (21:36 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Mon, 4 Mar 2024 06:52:13 +0000 (22:52 -0800)
commit7bfc84b23e750d746e5c6723270b9c7f92cfa88c
treef75a8dd94f2f6493d1359181da1b11f18cf395a2
parent412a2ff473ac01b195eb38c0853ce065b524b2e2
perf threads: Reduce table size from 256 to 8

The threads data structure is an array of hashmaps, previously
rbtrees. The two levels allows for a fixed outer array where access is
guarded by rw_semaphores. Commit 91e467bc568f ("perf machine: Use
hashtable for machine threads") sized the outer table at 256 entries
to avoid future scalability problems, however, this means the threads
struct is sized at 30,720 bytes. As the hashmaps allow O(1) access for
the common find/insert/remove operations, lower the number of entries
to 8. This reduces the size overhead to 960 bytes.

Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Yang Jihong <yangjihong1@huawei.com>
Cc: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240301053646.1449657-8-irogers@google.com
tools/perf/util/threads.h