[1/3] perf lock contention: Fix to save callstack for the default modified

Message ID 20230207002403.63590-2-namhyung@kernel.org
State New
Headers
Series perf lock contention: Track lock owner (v2) |

Commit Message

Namhyung Kim Feb. 7, 2023, 12:24 a.m. UTC
  The previous change missed to set the con->save_callstack for the
LOCK_AGGR_CALLER mode resulting in no caller information.

Fixes: ebab291641be ("perf lock contention: Support filters for different aggregation")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/builtin-lock.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Namhyung Kim Feb. 7, 2023, 10:22 p.m. UTC | #1
On Mon, Feb 6, 2023 at 4:24 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> The previous change missed to set the con->save_callstack for the
> LOCK_AGGR_CALLER mode resulting in no caller information.
>
> Fixes: ebab291641be ("perf lock contention: Support filters for different aggregation")
> Signed-off-by: Namhyung Kim <namhyung@kernel.org>

Arnaldo, can you please take this one asap?

Thanks,
Namhyung


> ---
>  tools/perf/builtin-lock.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
> index 0d11f301fd72..a4b5c481129c 100644
> --- a/tools/perf/builtin-lock.c
> +++ b/tools/perf/builtin-lock.c
> @@ -1806,6 +1806,9 @@ static int __cmd_contention(int argc, const char **argv)
>         con.aggr_mode = aggr_mode = show_thread_stats ? LOCK_AGGR_TASK :
>                 show_lock_addrs ? LOCK_AGGR_ADDR : LOCK_AGGR_CALLER;
>
> +       if (con.aggr_mode == LOCK_AGGR_CALLER)
> +               con.save_callstack = true;
> +
>         /* for lock function check */
>         symbol_conf.sort_by_name = true;
>         symbol_conf.allow_aliases = true;
> --
> 2.39.1.519.gcb327c4b5f-goog
>
  

Patch

diff --git a/tools/perf/builtin-lock.c b/tools/perf/builtin-lock.c
index 0d11f301fd72..a4b5c481129c 100644
--- a/tools/perf/builtin-lock.c
+++ b/tools/perf/builtin-lock.c
@@ -1806,6 +1806,9 @@  static int __cmd_contention(int argc, const char **argv)
 	con.aggr_mode = aggr_mode = show_thread_stats ? LOCK_AGGR_TASK :
 		show_lock_addrs ? LOCK_AGGR_ADDR : LOCK_AGGR_CALLER;
 
+	if (con.aggr_mode == LOCK_AGGR_CALLER)
+		con.save_callstack = true;
+
 	/* for lock function check */
 	symbol_conf.sort_by_name = true;
 	symbol_conf.allow_aliases = true;