Ian Rogers
6d78089da9
perf tests: Fix hwmon parsing with PMU name test
...
Incorrectly the hwmon with PMU name test didn't pass "true". Fix and
address issue with hwmon_pmu__config_terms needing to load events - a
load bearing assert fired. Also fix missing list deletion when putting
the hwmon test PMU and lower some debug warnings to make the hwmon PMU
less spammy in verbose mode.
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Namhyung Kim <namhyung@kernel.org >
Link: https://lore.kernel.org/r/20241121000955.536930-1-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-22 13:38:39 -08:00
Ian Rogers
62878b400f
perf hwmon_pmu: Ensure hwmon key union is zeroed before use
...
Non-zero values led to mismatches in testing. This was reproducible
with -fsanitize=undefined.
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org >
Closes: https://lore.kernel.org/lkml/Zzdtj0PEWEX3ATwL@x1/
Signed-off-by: Ian Rogers <irogers@google.com >
Acked-by: Namhyung Kim <namhyung@kernel.org >
Link: https://lore.kernel.org/r/20241119230033.115369-1-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-22 13:38:39 -08:00
Hao Ge
bd077a53ad
perf bpf-filter: Return -ENOMEM directly when pfi allocation fails
...
Directly return -ENOMEM when pfi allocation fails,
instead of performing other operations on pfi.
Fixes: 0fe2b18ddc ("perf bpf-filter: Support multiple events properly")
Signed-off-by: Hao Ge <gehao@kylinos.cn >
Acked-by: Namhyung Kim <namhyung@kernel.org >
Cc: hao.ge@linux.dev
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20241113030537.26732-1-hao.ge@linux.dev
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-22 13:36:00 -08:00
Dr. David Alan Gilbert
85c60a01b8
perf: Remove unused del_perf_probe_events()
...
del_perf_probe_events() last use was removed by commit 3d6dfae889
("perf parse-events: Remove BPF event support")
Remove it.
It was the last user of probe_file__del_events(), so remove it as well.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: https://lore.kernel.org/r/20241022002940.302946-1-linux@treblig.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 17:07:31 -03:00
Ian Rogers
8f997865ee
perf pmu: Move pmu_metrics_table__find and remove ARM override
...
Move pmu_metrics_table__find() to the jevents.py generated pmu-events.c
and remove indirection override for ARM.
The movement removes perf_pmu__find_metrics_table that exists to enable
the ARM override.
The ARM override isn't necessary as just the CPUID, not PMU, is used in
the metric table lookup.
On non-ARM the CPU argument is just ignored for the CPUID, for ARM -1 is
passed so that the CPUID for the first logical CPU is read.
Reviewed-by: James Clark <james.clark@linaro.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Xu Yang <xu.yang_2@nxp.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Ben Zong-You Xie <ben717@andestech.com >
Cc: Benjamin Gray <bgray@linux.ibm.com >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Clément Le Goffic <clement.legoffic@foss.st.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Sandipan Das <sandipan.das@amd.com >
Cc: Will Deacon <will@kernel.org >
Cc: Yicong Yang <yangyicong@hisilicon.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20241107162035.52206-9-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:42:36 -03:00
Ian Rogers
494c403ff1
perf header: Pass a perf_cpu rather than a PMU to get_cpuid_str
...
On ARM the cpuid is dependent on the core type of the CPU in
question. The PMU was passed for the sake of the CPU map but this
means in places a temporary PMU is created just to pass a CPU
value. Just pass the CPU and fix up the callers.
As there are no longer PMU users in header.h, shuffle forward
declarations earlier to work around build failures.
Reviewed-by: James Clark <james.clark@linaro.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Xu Yang <xu.yang_2@nxp.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Ben Zong-You Xie <ben717@andestech.com >
Cc: Benjamin Gray <bgray@linux.ibm.com >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Clément Le Goffic <clement.legoffic@foss.st.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Sandipan Das <sandipan.das@amd.com >
Cc: Will Deacon <will@kernel.org >
Cc: Yicong Yang <yangyicong@hisilicon.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20241107162035.52206-7-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:40:30 -03:00
Ian Rogers
7463ee17a7
perf header: Avoid transitive PMU includes
...
Currently satisfied via header.h. Note, pmu.h includes parse-events.h.
Reviewed-by: James Clark <james.clark@linaro.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Xu Yang <xu.yang_2@nxp.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Ben Zong-You Xie <ben717@andestech.com >
Cc: Benjamin Gray <bgray@linux.ibm.com >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Clément Le Goffic <clement.legoffic@foss.st.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Sandipan Das <sandipan.das@amd.com >
Cc: Will Deacon <will@kernel.org >
Cc: Yicong Yang <yangyicong@hisilicon.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20241107162035.52206-6-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:39:59 -03:00
Ian Rogers
538737da96
perf arm64 header: Use cpu argument in get_cpuid
...
Use the cpu to read the MIDR file requested. If the "any" value (-1) is
passed that keep the behavior of returning the first MIDR file that can
be read.
Reviewed-by: James Clark <james.clark@linaro.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Xu Yang <xu.yang_2@nxp.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Ben Zong-You Xie <ben717@andestech.com >
Cc: Benjamin Gray <bgray@linux.ibm.com >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Clément Le Goffic <clement.legoffic@foss.st.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Sandipan Das <sandipan.das@amd.com >
Cc: Will Deacon <will@kernel.org >
Cc: Yicong Yang <yangyicong@hisilicon.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20241107162035.52206-5-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:39:04 -03:00
Ian Rogers
cec0d6572a
perf header: Refactor get_cpuid to take a CPU for ARM
...
ARM BIG.little has no notion of a constant CPUID for both core
types. To reflect this reality, change the get_cpuid function to also
pass in a possibly unused logical cpu.
If the dummy value (-1) is passed in then ARM can, as currently happens,
select the first logical CPU's "CPUID".
The changes to ARM getcpuid happen in a follow up change.
Reviewed-by: James Clark <james.clark@linaro.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Xu Yang <xu.yang_2@nxp.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Ben Zong-You Xie <ben717@andestech.com >
Cc: Benjamin Gray <bgray@linux.ibm.com >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Clément Le Goffic <clement.legoffic@foss.st.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Sandipan Das <sandipan.das@amd.com >
Cc: Will Deacon <will@kernel.org >
Cc: Yicong Yang <yangyicong@hisilicon.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20241107162035.52206-4-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:37:54 -03:00
Ian Rogers
c6fafe36ba
perf header: Move is_cpu_online to numa bench
...
The helper function is only used in the NUMA benchmark as typically
online CPUs are determined through perf_cpu_map__new_online_cpus().
Reduce the scope of the function for now.
Reviewed-by: James Clark <james.clark@linaro.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Tested-by: Xu Yang <xu.yang_2@nxp.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexandre Ghiti <alexghiti@rivosinc.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Ben Zong-You Xie <ben717@andestech.com >
Cc: Benjamin Gray <bgray@linux.ibm.com >
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: Clément Le Goffic <clement.legoffic@foss.st.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Sandipan Das <sandipan.das@amd.com >
Cc: Will Deacon <will@kernel.org >
Cc: Yicong Yang <yangyicong@hisilicon.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Link: https://lore.kernel.org/r/20241107162035.52206-3-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:36:47 -03:00
Dr. David Alan Gilbert
264708b8ac
perf util: Remove kernel version deadcode
...
fetch_kernel_version() has been unused since Ian's 2023 commit
3d6dfae889 ("perf parse-events: Remove BPF event support")
Remove it, and it's helpers.
I noticed there are a bunch of kernel-version macros that are also
unused nearby.
Also remove them.
Reviewed-by: Ian Rogers <irogers@google.com >
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: https://lore.kernel.org/r/20241116155850.113129-1-linux@treblig.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-16 16:30:39 -03:00
Masami Hiramatsu (Google)
080e47b2a2
perf probe: Introduce quotation marks support
...
In non-C languages, it is possible to have ':' in the function names.
It is possible to escape it with backslashes, but if there are too many
backslashes, it is annoying.
This introduce quotation marks (`"` or `'`) support.
For example, without quotes, we have to pass it as below
$ perf probe -x cro3 -L "cro3\:\:cmd\:\:servo\:\:run_show"
<run_show@/work/cro3/src/cmd/servo.rs:0>
0 fn run_show(args: &ArgsShow) -> Result<()> {
1 let list = ServoList::discover()?;
2 let s = list.find_by_serial(&args.servo)?;
3 if args.json {
4 println!("{s}");
With quotes, we can more naturally write the function name as below;
$ perf probe -x cro3 -L \"cro3::cmd::servo::run_show\"
<run_show@/work/cro3/src/cmd/servo.rs:0>
0 fn run_show(args: &ArgsShow) -> Result<()> {
1 let list = ServoList::discover()?;
2 let s = list.find_by_serial(&args.servo)?;
3 if args.json {
4 println!("{s}");
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Link: https://lore.kernel.org/r/173099116941.2431889.11609129616090100386.stgit@mhiramat.roam.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-14 16:56:32 -03:00
Masami Hiramatsu (Google)
313026f3ce
perf string: Add strpbrk_esq() and strdup_esq() for escape and quote
...
strpbrk_esq() and strdup_esq() are new variants for strpbrk() and
strdup() which handles escaped characters and quoted strings.
- strpbrk_esq() searches specified set of characters but ignores the
escaped characters and quoted strings.
e.g. strpbrk_esq("'quote\d' \queue quiz", "qd") returns "quiz".
- strdup_esq() duplicates string but removes backslash and quotes which
is used for quotation. It also keeps the string (including backslash)
in the quoted part.
e.g. strdup_esq("'quote\d' \queue quiz") returns "quote\d queue quiz".
The (single, double) quotes in the quoted part should be escaped by
backslash. In this case, strdup_esq() removes that backslash.
The same quotes must be paired. If you use double quotation, you need
to use the double quotation to close the quoted part.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Link: https://lore.kernel.org/r/173099116045.2431889.15772916605719019533.stgit@mhiramat.roam.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-14 16:56:32 -03:00
Masami Hiramatsu (Google)
b9e577225c
perf probe: Accept FUNC@* to specify function name explicitly
...
In Golang, the function name will have the '.', and 'perf probe'
misinterprets it as a file name.
To mitigate this situation, introduce `function@*` so that user can
explicitly specify that it is a function name.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Link: https://lore.kernel.org/r/173099115149.2431889.13682110856853358354.stgit@mhiramat.roam.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-14 16:56:32 -03:00
Masami Hiramatsu (Google)
47fa0f99a9
perf probe: Fix to ignore escaped characters in --lines option
...
Use strbprk_esc() and strdup_esc() to ignore escaped characters in
--lines option. This has been done for other options, but only --lines
option doesn't.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Link: https://lore.kernel.org/r/173099114272.2431889.4820591557298941207.stgit@mhiramat.roam.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-14 16:56:32 -03:00
Masami Hiramatsu (Google)
e7c70ee7c9
perf probe: Fix error message for failing to find line range
...
With --lines option, if perf-probe fails to find the specified line, it
warns as "Debuginfo analysis failed." but this misleads user as the
debuginfo is broken.
Fix this message to "Specified source line(LINESPEC) is not found." so
that user can understand the error correctly.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Link: https://lore.kernel.org/r/173099113381.2431889.16263147678401426107.stgit@mhiramat.roam.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-14 16:56:32 -03:00
Jean-Philippe Romain
d99b312572
perf list: Fix topic and pmu_name argument order
...
Fix function definitions to match header file declaration. Fix two
callers to pass the arguments in the right order.
On Intel Tigerlake, before:
```
$ perf list -j|grep "\"Topic\""|sort|uniq
"Topic": "cache",
"Topic": "cpu",
"Topic": "floating point",
"Topic": "frontend",
"Topic": "memory",
"Topic": "other",
"Topic": "pfm icl",
"Topic": "pfm ix86arch",
"Topic": "pfm perf_raw",
"Topic": "pipeline",
"Topic": "tool",
"Topic": "uncore interconnect",
"Topic": "uncore memory",
"Topic": "uncore other",
"Topic": "virtual memory",
$ perf list -j|grep "\"Unit\""|sort|uniq
"Unit": "cache",
"Unit": "cpu",
"Unit": "cstate_core",
"Unit": "cstate_pkg",
"Unit": "i915",
"Unit": "icl",
"Unit": "intel_bts",
"Unit": "intel_pt",
"Unit": "ix86arch",
"Unit": "msr",
"Unit": "perf_raw",
"Unit": "power",
"Unit": "tool",
"Unit": "uncore_arb",
"Unit": "uncore_clock",
"Unit": "uncore_imc_free_running_0",
"Unit": "uncore_imc_free_running_1",
```
After:
```
$ perf list -j|grep "\"Topic\""|sort|uniq
"Topic": "cache",
"Topic": "floating point",
"Topic": "frontend",
"Topic": "memory",
"Topic": "other",
"Topic": "pfm icl",
"Topic": "pfm ix86arch",
"Topic": "pfm perf_raw",
"Topic": "pipeline",
"Topic": "tool",
"Topic": "uncore interconnect",
"Topic": "uncore memory",
"Topic": "uncore other",
"Topic": "virtual memory",
$ perf list -j|grep "\"Unit\""|sort|uniq
"Unit": "cpu",
"Unit": "cstate_core",
"Unit": "cstate_pkg",
"Unit": "i915",
"Unit": "icl",
"Unit": "intel_bts",
"Unit": "intel_pt",
"Unit": "ix86arch",
"Unit": "msr",
"Unit": "perf_raw",
"Unit": "power",
"Unit": "tool",
"Unit": "uncore_arb",
"Unit": "uncore_clock",
"Unit": "uncore_imc_free_running_0",
"Unit": "uncore_imc_free_running_1",
```
Fixes: e5c6109f48 ("perf list: Reorganize to use callbacks to allow honouring command line options")
Reviewed-by: Kan Liang <kan.liang@linux.intel.com >
Signed-off-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com >
Tested-by: Ian Rogers <irogers@google.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Junhao He <hejunhao3@huawei.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: https://lore.kernel.org/r/20241109025801.560378-1-irogers@google.com
[ I fixed the two callers and added it to Jean-Phillippe's original change. ]
Signed-off-by: Ian Rogers <irogers@google.com >
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-13 16:27:35 -03:00
Andrew Kreimer
463c203165
perf tools: Fix typos Muliplier -> Multiplier
...
There are some typos in fprintf messages.
Fix them via codespell.
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com >
Signed-off-by: Andrew Kreimer <algonell@gmail.com >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Ian Rogers <irogers@google.com >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Mark Rutland <mark.rutland@arm.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: https://lore.kernel.org/r/20241108134728.25515-1-algonell@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-13 16:27:35 -03:00
Arnaldo Carvalho de Melo
a6e8a58de6
perf disasm: Allow configuring what disassemblers to use
...
The perf tools annotation code used for a long time parsing the output
of binutils's objdump (or its reimplementations, like llvm's) to then
parse and augment it with samples, allow navigation, etc.
More recently disassemblers from the capstone and llvm (libraries, not
parsing the output of tools using those libraries to mimic binutils's
objdump output) were introduced.
So when all those methods are available, there is a static preference
for a series of attempts of disassembling a binary, with the 'llvm,
capstone, objdump' sequence being hard coded.
This patch allows users to change that sequence, specifying via a 'perf
config' 'annotate.disassemblers' entry which and in what order
disassemblers should be attempted.
As alluded to in the comments in the source code of this series, this
flexibility is useful for users and developers alike, elliminating the
requirement to rebuild the tool with some specific set of libraries to
see how the output of disassembling would be for one of these methods.
root@x1:~# rm -f ~/.perfconfig
root@x1:~# perf annotate -v --stdio2 update_load_avg
<SNIP>
symbol__disassemble:
filename=/usr/lib/debug/lib/modules/6.11.4-201.fc40.x86_64/vmlinux,
sym=update_load_avg, start=0xffffffffb6148fe0, en>
annotating [0x6ff7170]
/usr/lib/debug/lib/modules/6.11.4-201.fc40.x86_64/vmlinux :
[0x7407ca0] update_load_avg
Disassembled with llvm
annotate.disassemblers=llvm,capstone,objdump
Samples: 66 of event 'cpu_atom/cycles/P', 10000 Hz,
Event count (approx.): 5185444, [percent: local period]
update_load_avg()
/usr/lib/debug/lib/modules/6.11.4-201.fc40.x86_64/vmlinux
Percent 0xffffffff81148fe0 <update_load_avg>:
1.61 pushq %r15
pushq %r14
1.00 pushq %r13
movl %edx,%r13d
1.90 pushq %r12
pushq %rbp
movq %rsi,%rbp
pushq %rbx
movq %rdi,%rbx
subq $0x18,%rsp
15.14 movl 0x1a4(%rdi),%eax
root@x1:~# perf config annotate.disassemblers=capstone
root@x1:~# cat ~/.perfconfig
# this file is auto-generated.
[annotate]
disassemblers = capstone
root@x1:~#
root@x1:~# perf annotate -v --stdio2 update_load_avg
<SNIP>
Disassembled with capstone
annotate.disassemblers=capstone
Samples: 66 of event 'cpu_atom/cycles/P', 10000 Hz,
Event count (approx.): 5185444, [percent: local period]
update_load_avg()
/usr/lib/debug/lib/modules/6.11.4-201.fc40.x86_64/vmlinux
Percent 0xffffffff81148fe0 <update_load_avg>:
1.61 pushq %r15
pushq %r14
1.00 pushq %r13
movl %edx,%r13d
1.90 pushq %r12
pushq %rbp
movq %rsi,%rbp
pushq %rbx
movq %rdi,%rbx
subq $0x18,%rsp
15.14 movl 0x1a4(%rdi),%eax
root@x1:~# perf config annotate.disassemblers=objdump,capstone
root@x1:~# perf config annotate.disassemblers
annotate.disassemblers=objdump,capstone
root@x1:~# cat ~/.perfconfig
# this file is auto-generated.
[annotate]
disassemblers = objdump,capstone
root@x1:~# perf annotate -v --stdio2 update_load_avg
Executing: objdump --start-address=0xffffffff81148fe0 \
--stop-address=0xffffffff811497aa \
-d --no-show-raw-insn -S -C "$1"
Disassembled with objdump
annotate.disassemblers=objdump,capstone
Samples: 66 of event 'cpu_atom/cycles/P', 10000 Hz,
Event count (approx.): 5185444, [percent: local period]
update_load_avg()
/usr/lib/debug/lib/modules/6.11.4-201.fc40.x86_64/vmlinux
Percent
Disassembly of section .text:
ffffffff81148fe0 <update_load_avg>:
#define DO_ATTACH 0x4
ffffffff81148fe0 <update_load_avg>:
#define DO_ATTACH 0x4
#define DO_DETACH 0x8
/* Update task and its cfs_rq load average */
static inline void update_load_avg(struct cfs_rq *cfs_rq,
struct sched_entity *se,
int flags)
{
1.61 push %r15
push %r14
1.00 push %r13
mov %edx,%r13d
1.90 push %r12
push %rbp
mov %rsi,%rbp
push %rbx
mov %rdi,%rbx
sub $0x18,%rsp
}
/* rq->task_clock normalized against any time
this cfs_rq has spent throttled */
static inline u64 cfs_rq_clock_pelt(struct cfs_rq *cfs_rq)
{
if (unlikely(cfs_rq->throttle_count))
15.14 mov 0x1a4(%rdi),%eax
root@x1:~#
After adding a way to select the disassembler from the command line a
'perf test' comparing the output of the various diassemblers should be
introduced, to test these codebases.
Acked-by: Ian Rogers <irogers@google.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Link: https://lore.kernel.org/r/20241111151734.1018476-4-acme@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-13 16:27:35 -03:00
Arnaldo Carvalho de Melo
1f7393adf6
perf disasm: Define stubs for the LLVM and capstone disassemblers
...
This reduces the number of ifdefs in the main symbol__disassemble()
method and paves the way for allowing the user to configure the
disassemblers of preference.
Acked-by: Ian Rogers <irogers@google.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Aditya Bodkhe <Aditya.Bodkhe1@ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Link: https://lore.kernel.org/r/20241111151734.1018476-3-acme@kernel.org
[ Applied fixes from Masami Hiramatsu and Aditya Bodkhe for when capstone devel files are not available ]
Link: https://lore.kernel.org/r/B78FB6DF-24E9-4A3C-91C9-535765EC0E2A@ibm.com
Link: https://lore.kernel.org/r/173145729034.2747044.453926054000880254.stgit@mhiramat.roam.corp.google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-13 16:20:32 -03:00
Arnaldo Carvalho de Melo
4c1d8f0547
perf disasm: Introduce symbol__disassemble_objdump()
...
With the first disassemble method in perf, the parsing of objdump
output, just like we have for llvm and capstone.
This paves the way to allow the user to specify what disassemblers are
preferred and to also to at some point allow building without the
objdump method.
Acked-by: Ian Rogers <irogers@google.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Kan Liang <kan.liang@linux.intel.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Link: https://lore.kernel.org/r/20241111151734.1018476-2-acme@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2024-11-11 14:26:37 -03:00
Ian Rogers
3ef6b89a12
perf dwarf-regs: Remove get_arch_regstr code
...
get_arch_regstr no longer exists so remove declaration. Associated ifs
and switches are made unconditional.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-20-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:14 -08:00
Ian Rogers
a4747c0950
perf xtensa: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. As this is
the only file in the arch/xtensa/util clean up Build files. Tidy up the
EM_NONE cases for xtensa in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-19-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:14 -08:00
Ian Rogers
85567a2a8d
perf sparc: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. As this is
the only file in the arch/sparc/util clean up Build files. Tidy up the
EM_NONE cases for sparc in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-18-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:14 -08:00
Ian Rogers
04150f29e2
perf sh: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. As this is
the only file in the arch/sh/util clean up Build files. Tidy up the
EM_NONE cases for sh in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-17-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:14 -08:00
Ian Rogers
b232b704a7
perf s390: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. Tidy up the
EM_NONE cases for s390 in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-16-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:14 -08:00
Ian Rogers
a90c451918
perf riscv: Remove dwarf-regs.c and add dwarf-regs-table.h
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case,
and the register table is provided in a header file, the function can
never be called. So remove as dead code. Tidy up the EM_NONE cases for
riscv in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Acked-by: Palmer Dabbelt <palmer@rivosinc.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-15-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
285b523c2d
perf dwarf-regs: Move powerpc dwarf-regs out of arch
...
Move arch/powerpc/util/dwarf-regs.c to util/dwarf-regs-powerpc.c and
compile in unconditionally. get_arch_regstr is redundant when EM_NONE
is treated as EM_HOST so remove and update dwarf-regs.c conditions.
Make get_powerpc_regs unconditionally available whwn libdw is.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-14-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
8a768a2f65
perf mips: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. Tidy up the
EM_NONE cases for mips in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-13-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
1d37bd8366
perf loongarch: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. Tidy up the
EM_NONE cases for loongarch in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-12-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
d4a0c4f221
perf dwarf-regs: Move csky dwarf-regs out of arch
...
Move arch/csky/util/dwarf-regs.c to util/dwarf-regs-csky.c and compile
in unconditionally. To avoid get_arch_regstr being duplicated, rename
to get_csky_regstr and add to get_dwarf_regstr switch.
Update #ifdefs to allow ABI V1 and V2 tables at the same
time. Determine the table from the ELF flags.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-11-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
0c0a20ecdf
perf arm: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. Tidy up the
EM_NONE cases for arm in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-10-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
6f8e8add5a
perf arm64: Remove dwarf-regs.c
...
The file just provides the function get_arch_regstr, however, if in
the only caller get_dwarf_regstr EM_HOST is used for the EM_NONE case
the function can never be called. So remove as dead code. Tidy up the
EM_NONE cases for arm64 in dwarf-regs.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-9-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
bf4e799a0a
perf dwarf-regs: Move x86 dwarf-regs out of arch
...
Move arch/x86/util/dwarf-regs.c to util/dwarf-regs-x86.c and compile
in unconditionally. To avoid get_arch_regnum being duplicated, rename
to get_x86_regnum and add to get_dwarf_regnum switch.
For get_arch_regstr, this was unused on x86 unless the machine type
was EM_NONE. Map that case to EM_HOST and remove get_arch_regstr from
dwarf-regs-x86.c.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-8-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
a784847c2d
perf dwarf-regs: Pass ELF flags to get_dwarf_regstr
...
Pass a flags value as architectures like csky need the flags to
determine the ABI variant.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-7-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
9fc4489a16
perf dwarf-regs: Pass accurate disassembly machine to get_dwarf_regnum
...
Rather than pass 0/EM_NONE, use the value computed in the disasm
struct arch. Switch the EM_NONE case to EM_HOST, rewriting EM_NONE if
it were passed to get_dwarf_regnum. Pass a flags value as
architectures like csky need the flags to determine the ABI variant.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-6-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
cd6c9dca9d
perf disasm: Add e_machine/e_flags to struct arch
...
Currently functions like get_dwarf_regnum only work with the host
architecture. Carry the elf machine and flags in struct arch so that
in disassembly these can be used to allow cross platform disassembly.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-5-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
ae894b7792
perf dwarf-regs: Add EM_HOST and EF_HOST defines
...
Computed from the build architecture defines, EM_HOST and EF_HOST give
values that can be used in dwarf register lookup. Place in
dwarf-regs.h so the value can be shared. Move some dwarf-regs.c
constants used for EM_HOST to dwarf-regs.h. Add CSky constants that
may be missing.
In disasm.c add an include of dwarf-regs.h as the included
arch/*/annotate/instructions.c files make use of the constants and we
want the elf.h/dwarf-regs.h dependency to be explicit.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-4-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:13 -08:00
Ian Rogers
6ac75289b2
perf dwarf-regs: Remove PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET
...
PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET was used for BPF prologue
support which was removed in Commit 3d6dfae889 ("perf parse-events:
Remove BPF event support"). The code is no longer used so remove.
Remove the offset from various dwarf-regs.c tables and the dependence
on ptrace.h. Rename structs starting pt_ as the ptrace derived offset is
now removed.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-3-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:12 -08:00
Ian Rogers
2bf7692ead
perf bpf-prologue: Remove unused file
...
Commit 4a73fca226 ("perf bpf-prologue: Remove unused file") missed
cleaning up the header file. The code was unnecessary as Commit
3d6dfae889 ("perf parse-events: Remove BPF event support") removed
building bpf-prologue.c.
Fixes: 4a73fca226 ("perf bpf-prologue: Remove unused file")
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org >
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Anup Patel <anup@brainfault.org >
Cc: Yang Jihong <yangjihong@bytedance.com >
Cc: Palmer Dabbelt <palmer@dabbelt.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Albert Ou <aou@eecs.berkeley.edu >
Cc: Shenlin Liang <liangshenlin@eswincomputing.com >
Cc: Nick Terrell <terrelln@fb.com >
Cc: Guilherme Amadio <amadio@gentoo.org >
Cc: Steinar H. Gunderson <sesse@google.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Alexander Lobakin <aleksander.lobakin@intel.com >
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Masahiro Yamada <masahiroy@kernel.org >
Cc: Will Deacon <will@kernel.org >
Cc: James Clark <james.clark@linaro.org >
Cc: Mike Leach <mike.leach@linaro.org >
Cc: Chen Pei <cp0613@linux.alibaba.com >
Cc: Leo Yan <leo.yan@linux.dev >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Aditya Gupta <adityag@linux.ibm.com >
Cc: Kajol Jain <kjain@linux.ibm.com >
Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com >
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-riscv@lists.infradead.org
Cc: Bibo Mao <maobibo@loongson.cn >
Cc: John Garry <john.g.garry@oracle.com >
Cc: Atish Patra <atishp@rivosinc.com >
Cc: Dima Kogan <dima@secretsauce.net >
Cc: Paul Walmsley <paul.walmsley@sifive.com >
Cc: Dr. David Alan Gilbert <linux@treblig.org >
Cc: linux-csky@vger.kernel.org
Link: https://lore.kernel.org/r/20241108234606.429459-2-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:39:12 -08:00
Ian Rogers
531ee0fd48
perf test: Add hwmon "PMU" test
...
Based on a mix of the sysfs PMU test (for creating the reference
files) and the tool PMU test, test that parsing given hwmon events
with there aliases creates the expected config values.
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Yoshihiro Furudera <fj5100bi@fujitsu.com >
Cc: Howard Chu <howardchu95@gmail.com >
Cc: Ze Gao <zegao2021@gmail.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Junhao He <hejunhao3@huawei.com >
Cc: Weilin Wang <weilin.wang@intel.com >
Cc: James Clark <james.clark@linaro.org >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com >
Link: https://lore.kernel.org/r/20241109003759.473460-7-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:28:03 -08:00
Ian Rogers
654986ed5d
perf pmu: Add calls enabling the hwmon_pmu
...
Add the base PMU calls necessary for hwmon_pmu(s) to be
created/deleted and events found, listed, opened and read.
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Yoshihiro Furudera <fj5100bi@fujitsu.com >
Cc: Howard Chu <howardchu95@gmail.com >
Cc: Ze Gao <zegao2021@gmail.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Junhao He <hejunhao3@huawei.com >
Cc: Weilin Wang <weilin.wang@intel.com >
Cc: James Clark <james.clark@linaro.org >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com >
Link: https://lore.kernel.org/r/20241109003759.473460-6-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:28:03 -08:00
Ian Rogers
53cc0b351e
perf hwmon_pmu: Add a tool PMU exposing events from hwmon in sysfs
...
Add a tool PMU for hwmon events but don't enable.
The hwmon sysfs ABI is defined in
Documentation/hwmon/sysfs-interface.rst. Create a PMU that reads the
hwmon input and can be used in `perf stat` and metrics much as an
uncore PMU can.
For example, when enabled by a later patch, the following shows
reading the CPU temperature and 2 fan speeds alongside the uncore
frequency:
```
$ perf stat -e temp_cpu,fan1,hwmon_thinkpad/fan2/,tool/num_cpus_online/ -M UNCORE_FREQ -I 1000
1.001153138 52.00 'C temp_cpu
1.001153138 2,588 rpm fan1
1.001153138 2,482 rpm hwmon_thinkpad/fan2/
1.001153138 8 tool/num_cpus_online/
1.001153138 1,077,101,397 UNC_CLOCK.SOCKET # 1.08 UNCORE_FREQ
1.001153138 1,012,773,595 duration_time
...
```
The PMUs are named from /sys/class/hwmon/hwmon<num>/name and have an
alias of hwmon<num>.
Hwmon data is presented in multiple <type><number>_<item> files. The
<type><number> is used to identify the event as is the <type> followed
by the contents of the <type>_label file if it exists. The
<type><number>_input file gives the data read by perf.
When enabled by a later patch, in `perf list` the other hwmon <item>
files are used to give a richer description, for example:
```
hwmon:
temp1
[Temperature in unit acpitz named temp1. Unit: hwmon_acpitz]
in0
[Voltage in unit bat0 named in0. Unit: hwmon_bat0]
temp_core_0 OR temp2
[Temperature in unit coretemp named Core 0. crit=100'C,max=100'C crit_alarm=0'C. Unit:
hwmon_coretemp]
temp_core_1 OR temp3
[Temperature in unit coretemp named Core 1. crit=100'C,max=100'C crit_alarm=0'C. Unit:
hwmon_coretemp]
...
temp_package_id_0 OR temp1
[Temperature in unit coretemp named Package id 0. crit=100'C,max=100'C crit_alarm=0'C.
Unit: hwmon_coretemp]
temp1
[Temperature in unit iwlwifi_1 named temp1. Unit: hwmon_iwlwifi_1]
temp_composite OR temp1
[Temperature in unit nvme named Composite. alarm=0'C,crit=86.85'C,max=75.85'C,
min=-273.15'C. Unit: hwmon_nvme]
temp_sensor_1 OR temp2
[Temperature in unit nvme named Sensor 1. max=65261.8'C,min=-273.15'C. Unit: hwmon_nvme]
temp_sensor_2 OR temp3
[Temperature in unit nvme named Sensor 2. max=65261.8'C,min=-273.15'C. Unit: hwmon_nvme]
fan1
[Fan in unit thinkpad named fan1. Unit: hwmon_thinkpad]
fan2
[Fan in unit thinkpad named fan2. Unit: hwmon_thinkpad]
...
temp_cpu OR temp1
[Temperature in unit thinkpad named CPU. Unit: hwmon_thinkpad]
temp_gpu OR temp2
[Temperature in unit thinkpad named GPU. Unit: hwmon_thinkpad]
curr1
[Current in unit ucsi_source_psy_usbc000_0 named curr1. max=1.5A. Unit:
hwmon_ucsi_source_psy_usbc000_0]
in0
[Voltage in unit ucsi_source_psy_usbc000_0 named in0. max=5V,min=5V. Unit:
hwmon_ucsi_source_psy_usbc000_0]
```
As there may be multiple hwmon devices a range of PMU types are
reserved for their use and to identify the PMU as belonging to the
hwmon types.
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Yoshihiro Furudera <fj5100bi@fujitsu.com >
Cc: Howard Chu <howardchu95@gmail.com >
Cc: Ze Gao <zegao2021@gmail.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Junhao He <hejunhao3@huawei.com >
Cc: Weilin Wang <weilin.wang@intel.com >
Cc: James Clark <james.clark@linaro.org >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com >
Link: https://lore.kernel.org/r/20241109003759.473460-5-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:28:03 -08:00
Ian Rogers
4810b761f8
perf hwmon_pmu: Add hwmon filename parser
...
hwmon filenames have a specific encoding that will be used to give a
config value. The encoding is described in:
Documentation/hwmon/sysfs-interface.rst
Add a function to parse the filename into consituent enums/ints that
will then be amenable to config encoding.
Note, things are done this way to allow mapping names to config and
back without the use of hash/dynamic lookup tables.
Signed-off-by: Ian Rogers <irogers@google.com >
Cc: Ravi Bangoria <ravi.bangoria@amd.com >
Cc: Yoshihiro Furudera <fj5100bi@fujitsu.com >
Cc: Howard Chu <howardchu95@gmail.com >
Cc: Ze Gao <zegao2021@gmail.com >
Cc: Changbin Du <changbin.du@huawei.com >
Cc: Junhao He <hejunhao3@huawei.com >
Cc: Weilin Wang <weilin.wang@intel.com >
Cc: James Clark <james.clark@linaro.org >
Cc: Oliver Upton <oliver.upton@linux.dev >
Cc: Athira Jajeev <atrajeev@linux.vnet.ibm.com >
[namhyung: add #include <linux/string.h> for strlcpy()]
Link: https://lore.kernel.org/r/20241109003759.473460-3-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-09 08:26:53 -08:00
Yicong Yang
35de42cdfb
perf build: Include libtraceevent headers directly indicated by pkg-config
...
Currently the libtraceevent's found by pkg-config, which give the
include path as:
[root@localhost tmp]# pkg-config --cflags libtraceevent
-I/usr/local/include/traceevent
So we should include the libtraceevent headers directly without
"traceevent/" prefix. Update all the users.
Fixes: 0f0e1f4456 ("perf build: Use pkg-config for feature check for libtrace{event,fs}")
Suggested-by: Namhyung Kim <namhyung@kernel.org >
Link: https://lore.kernel.org/linux-perf-users/ZyF5_Hf1iL01kldE@google.com/
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com >
Cc: leo.yan@arm.com
Cc: amadio@gentoo.org
Cc: linuxarm@huawei.com
Link: https://lore.kernel.org/r/20241105105649.45399-1-yangyicong@huawei.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-08 22:42:57 -08:00
Steve Clevenger
26ec3d7cc3
perf script cs_etm: Add map_pgoff to python dictionary
...
Extract map_pgoff parameter from the dictionary, and adjust start/end
range passed to objdump based on the value.
A zero start_addr is filtered to prevent output of dso address range
check failures. This script repeatedly sees a zero value passed
in for
start_addr = cpu_data[str(cpu) + 'addr']
These zero values are not a new problem. The start_addr/stop_addr warning
clutters the instruction trace output, hence this change.
Signed-off-by: Steve Clevenger <scclevenger@os.amperecomputing.com >
Reviewed-by: Leo Yan <leo.yan@arm.com >
Cc: suzuki.poulose@arm.com
Cc: james.clark@linaro.org
Cc: mike.leach@linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: coresight@lists.linaro.org
Cc: ilkka@os.amperecomputing.com
Link: https://lore.kernel.org/r/8d9a1142dc58ffa34a000cb7b7a26055df0a37ec.1731027120.git.scclevenger@os.amperecomputing.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-08 22:42:56 -08:00
Ian Rogers
62a6d092f1
perf stat: Expand metric+unit buffer size
...
Long metric names combined with units may exceed the metric_bf and
lead to truncation. Double metric_bf in size to avoid this.
Signed-off-by: Ian Rogers <irogers@google.com >
Acked-by: Kan Liang <kan.liang@linux.intel.com >
Link: https://lore.kernel.org/r/20241106004818.2174593-1-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-07 11:49:50 -08:00
Dr. David Alan Gilbert
9ac98662db
perf: event: Remove deadcode
...
event_format__print() last use was removed by 2017's
commit 894f3f1732 ("perf script: Use event_format__fprintf()")
evlist__find_tracepoint_by_id() last use was removed by 2012's
commit e60fc847ce ("perf evlist: Remove some unused methods")
evlist__set_tp_filter_pid() last use was removed by 2017's
commit dd1a50377c ("perf trace: Introduce filter_loop_pids()")
Remove them.
Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org >
Reviewed-by: Ian Rogers <irogers@google.com >
Link: https://lore.kernel.org/r/20241106144826.91728-1-linux@treblig.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-07 10:51:56 -08:00
Namhyung Kim
aa5c90601b
Merge 'origin/master' into perf-tools-next
...
To get the fixes in the perf-tools branch. Resolved a conflict due to
RISC-V's syscall table change.
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-03 23:18:20 -08:00
Tengda Wu
07dc3a6de3
perf stat: Support inherit events during fork() for bperf
...
bperf has a nice ability to share PMUs, but it still does not support
inherit events during fork(), resulting in some deviations in its stat
results compared with perf.
perf stat result:
$ ./perf stat -e cycles,instructions -- ./perf test -w sqrtloop
Performance counter stats for './perf test -w sqrtloop':
2,316,038,116 cycles
2,859,350,725 instructions
1.009603637 seconds time elapsed
1.004196000 seconds user
0.003950000 seconds sys
bperf stat result:
$ ./perf stat --bpf-counters -e cycles,instructions -- \
./perf test -w sqrtloop
Performance counter stats for './perf test -w sqrtloop':
18,762,093 cycles
23,487,766 instructions
1.008913769 seconds time elapsed
1.003248000 seconds user
0.004069000 seconds sys
In order to support event inheritance, two new bpf programs are added
to monitor the fork and exit of tasks respectively. When a task is
created, add it to the filter map to enable counting, and reuse the
`accum_key` of its parent task to count together with the parent task.
When a task exits, remove it from the filter map to disable counting.
After support:
$ ./perf stat --bpf-counters -e cycles,instructions -- \
./perf test -w sqrtloop
Performance counter stats for './perf test -w sqrtloop':
2,316,252,189 cycles
2,859,946,547 instructions
1.009422314 seconds time elapsed
1.003597000 seconds user
0.004270000 seconds sys
Signed-off-by: Tengda Wu <wutengda@huaweicloud.com >
Cc: song@kernel.org
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20241021110201.325617-2-wutengda@huaweicloud.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org >
2024-11-01 23:31:08 -07:00