Re: [PATCH 5.15.y] tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 24, 2022 at 08:33:57AM +0300, Nikita Yushchenko wrote:
> commit 0878355b51f5f26632e652c848a8e174bb02d22d upstream.
> 
> If start_per_cpu_kthreads() called from osnoise_workload_start() returns
> error, event hooks are left in broken state: unhook_irq_events() called
> but unhook_thread_events() and unhook_softirq_events() not called, and
> trace_osnoise_callback_enabled flag not cleared.
> 
> On the next tracer enable, hooks get not installed due to
> trace_osnoise_callback_enabled flag.
> 
> And on the further tracer disable an attempt to remove non-installed
> hooks happened, hitting a WARN_ON_ONCE() in tracepoint_remove_func().
> 
> Fix the error path by adding the missing part of cleanup.
> While at this, introduce osnoise_unhook_events() to avoid code
> duplication between this error path and normal tracer disable.
> 
> Link: https://lkml.kernel.org/r/20220109153459.3701773-1-nikita.yushchenko@xxxxxxxxxxxxx
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: bce29ac9ce0b ("trace: Add osnoise tracer")
> Acked-by: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx>
> Signed-off-by: Nikita Yushchenko <nikita.yushchenko@xxxxxxxxxxxxx>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> ---
>  kernel/trace/trace_osnoise.c | 20 ++++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)

Now queued up, thanks.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux