Messages in this thread | | | Date | Mon, 10 Jan 2022 08:37:52 +0100 | Subject | Re: [PATCH v2] tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails | From | Daniel Bristot de Oliveira <> |
| |
On 1/9/22 16:34, Nikita Yushchenko wrote: > 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. > > Fixes: bce29ac9ce0b ("trace: Add osnoise tracer") > Signed-off-by: Nikita Yushchenko <nikita.yushchenko@virtuozzo.com>
Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Thanks Nikita! -- Daniel
| |