| From 6624391e9d93fff7ffa0405b3da26424b31fe341 Mon Sep 17 00:00:00 2001 |
| From: Kevin Hao <haokexin@gmail.com> |
| Date: Thu, 30 Jul 2020 16:23:18 +0800 |
| Subject: [PATCH] tracing/hwlat: Honor the tracing_cpumask |
| |
| commit 96b4833b6827a62c295b149213c68b559514c929 upstream. |
| |
| In calculation of the cpu mask for the hwlat kernel thread, the wrong |
| cpu mask is used instead of the tracing_cpumask, this causes the |
| tracing/tracing_cpumask useless for hwlat tracer. Fixes it. |
| |
| Link: https://lkml.kernel.org/r/20200730082318.42584-2-haokexin@gmail.com |
| |
| Cc: Ingo Molnar <mingo@redhat.com> |
| Cc: stable@vger.kernel.org |
| Fixes: 0330f7aa8ee6 ("tracing: Have hwlat trace migrate across tracing_cpumask CPUs") |
| Signed-off-by: Kevin Hao <haokexin@gmail.com> |
| Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> |
| |
| diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c |
| index 8030e24dbf14..568918fae8d4 100644 |
| --- a/kernel/trace/trace_hwlat.c |
| +++ b/kernel/trace/trace_hwlat.c |
| @@ -270,6 +270,7 @@ static bool disable_migrate; |
| static void move_to_next_cpu(void) |
| { |
| struct cpumask *current_mask = &save_cpumask; |
| + struct trace_array *tr = hwlat_trace; |
| int next_cpu; |
| |
| if (disable_migrate) |
| @@ -283,7 +284,7 @@ static void move_to_next_cpu(void) |
| goto disable; |
| |
| get_online_cpus(); |
| - cpumask_and(current_mask, cpu_online_mask, tracing_buffer_mask); |
| + cpumask_and(current_mask, cpu_online_mask, tr->tracing_cpumask); |
| next_cpu = cpumask_next(smp_processor_id(), current_mask); |
| put_online_cpus(); |
| |
| @@ -360,7 +361,7 @@ static int start_kthread(struct trace_array *tr) |
| /* Just pick the first CPU on first iteration */ |
| current_mask = &save_cpumask; |
| get_online_cpus(); |
| - cpumask_and(current_mask, cpu_online_mask, tracing_buffer_mask); |
| + cpumask_and(current_mask, cpu_online_mask, tr->tracing_cpumask); |
| put_online_cpus(); |
| next_cpu = cpumask_first(current_mask); |
| |
| -- |
| 2.27.0 |
| |