perf lock contention: Use lock_stat_find{,new}
authorNamhyung Kim <namhyung@kernel.org>
Fri, 3 Feb 2023 02:13:23 +0000 (18:13 -0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 3 Feb 2023 20:12:26 +0000 (17:12 -0300)
commit16cad1d3597d32e470a4115f11c5e61cce6cd81b
treedf2f8221a90cd822e02476da0120c09207bb38a7
parent492fef218a6606c53bbb979a65b8f827c5ea02ce
perf lock contention: Use lock_stat_find{,new}

This is a preparation work to support complex keys of BPF maps.  Now it
has single value key according to the aggregation mode like stack_id or
pid.  But we want to use a combination of those keys.

Then lock_contention_read() should still aggregate the result based on
the key that was requested by user.  The other key info will be used for
filtering.

So instead of creating a lock_stat entry always, Check if it's already
there using lock_stat_find() first.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Hao Luo <haoluo@google.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <song@kernel.org>
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20230203021324.143540-3-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-lock.c
tools/perf/util/Build
tools/perf/util/bpf_lock_contention.c
tools/perf/util/lock-contention.h