| 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>, 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 |
| Subject: |
| [PATCH v3 0/7] Thread memory improvements and fixes |
| Date: |
| Wed, 28 Feb 2024 22:32:46 -0800 |
| Message-ID: |
| <20240229063253.561838-1-irogers@google.com> |
| Archive-link: |
| Article |
The next 6 patches (now 7) 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.
v3. Factor threads out of machine in 1 patch, then move threads
functions in a second.
v2: improve comments and a commit message.
Ian Rogers (7):
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 machine: Move machine's threads into its own abstraction
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 | 4 +-
tools/perf/util/machine.c | 341 +++++++-------------------
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, 474 insertions(+), 394 deletions(-)
create mode 100644 tools/perf/util/threads.c
create mode 100644 tools/perf/util/threads.h
--
2.44.0.278.ge034bb2e1d-goog