|
|
Subscribe / Log in / New account

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




Copyright © 2024, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds