Thread memory improvements and fixes
From: | Ian Rogers <irogers-AT-google.com> | |
To: | Peter Zijlstra <peterz-AT-infradead.org>, Ingo Molnar <mingo-AT-redhat.com>, Arnaldo Carvalho de Melo <acme-AT-kernel.org>, Namhyung Kim <namhyung-AT-kernel.org>, Mark Rutland <mark.rutland-AT-arm.com>, Alexander Shishkin <alexander.shishkin-AT-linux.intel.com>, Jiri Olsa <jolsa-AT-kernel.org>, Ian Rogers <irogers-AT-google.com>, Adrian Hunter <adrian.hunter-AT-intel.com>, Kan Liang <kan.liang-AT-linux.intel.com>, Oliver Upton <oliver.upton-AT-linux.dev>, Yang Jihong <yangjihong1-AT-huawei.com>, linux-kernel-AT-vger.kernel.org, linux-perf-users-AT-vger.kernel.org, bpf-AT-vger.kernel.org | |
Subject: | [PATCH v2 0/6] Thread memory improvements and fixes | |
Date: | Tue, 27 Feb 2024 14:01:44 -0800 | |
Message-ID: | <20240227220150.3876198-1-irogers@google.com> | |
Archive-link: | Article |
The next 6 patches from: https://lore.kernel.org/lkml/20240202061532.1939474-1-iro... now the initial maps fixes have landed: https://lore.kernel.org/all/20240210031746.4057262-1-irog... Separate out and reimplement threads to use a hashmap for lower memory consumption and faster look up. The fixes a regression in memory usage where reference count checking switched to using non-invasive tree nodes. Reduce threads default size by 32 times and improve locking discipline. Also, fix regressions where tids had become unordered to make `perf report --tasks` and `perf trace --summary` output easier to read. v2: improve comments and a commit message. Ian Rogers (6): perf report: Sort child tasks by tid perf trace: Ignore thread hashing in summary perf machine: Move fprintf to for_each loop and a callback perf threads: Move threads to its own files perf threads: Switch from rbtree to hashmap perf threads: Reduce table size from 256 to 8 tools/perf/builtin-report.c | 217 +++++++++------- tools/perf/builtin-trace.c | 41 +-- tools/perf/util/Build | 1 + tools/perf/util/bpf_lock_contention.c | 8 +- tools/perf/util/machine.c | 344 +++++++------------------- tools/perf/util/machine.h | 30 +-- tools/perf/util/rb_resort.h | 5 - tools/perf/util/thread.c | 2 +- tools/perf/util/thread.h | 6 - tools/perf/util/threads.c | 186 ++++++++++++++ tools/perf/util/threads.h | 35 +++ 11 files changed, 477 insertions(+), 398 deletions(-) create mode 100644 tools/perf/util/threads.c create mode 100644 tools/perf/util/threads.h -- 2.44.0.rc1.240.g4c46232300-goog