On Thu, 19 Nov 2020 13:53:57 +0100 Marco Elver <elver@xxxxxxxxxx> wrote: > Running tests again, along with the function tracer > Running tests on all trace events: > Testing all events: > BUG: workqueue lockup - pool cpus=0 node=0 flags=0x0 nice=0 stuck for 12s! The below patch might be noisy, but can you add it to the kernel that crashes and see if a particular event causes the issue? [ note I didn't even compile test. I hope it works ;) ] Perhaps run it a couple of times to see if it crashes on the same set of events each time. -- Steve diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 98d194d8460e..eb1dd9cf77a9 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -773,6 +773,8 @@ static void remove_event_file_dir(struct trace_event_file *file) kmem_cache_free(file_cachep, file); } +static int spam; + /* * __ftrace_set_clr_event(NULL, NULL, NULL, set) will set/unset all events. */ @@ -808,6 +810,8 @@ __ftrace_set_clr_event_nolock(struct trace_array *tr, const char *match, if (event && strcmp(event, name) != 0) continue; + if (spam) + printk("%s event %s\n", set ? "enabling" : "disabling", name); ret = ftrace_event_enable_disable(file, set); /* @@ -3647,6 +3651,7 @@ static __init void event_trace_self_tests(void) pr_info("Running tests on all trace events:\n"); pr_info("Testing all events: "); + spam = 1; ret = __ftrace_set_clr_event(tr, NULL, NULL, NULL, 1); if (WARN_ON_ONCE(ret)) { pr_warn("error enabling all events\n"); @@ -3661,6 +3666,7 @@ static __init void event_trace_self_tests(void) pr_warn("error disabling all events\n"); return; } + spam = 0; pr_cont("OK\n"); }