Re: WARN_ON: userstacktrace on irq events

From: Thomas Gleixner
Date: Fri Apr 05 2019 - 04:12:33 EST


On Wed, 3 Apr 2019, Steven Rostedt wrote:
> Juri reported this from the -rt kernel, but I can easily trigger it in
> mainline. By simply doing:
>
> # cd /sys/kernel/tracing
> # echo 1 > options/userstacktrace
> # echo 1 > events/irq/enable
> This is simply caused by the irq trace events doing a user stack trace:
>
> ftrace_trace_userstack {
> save_stack_trace_user {
> __save_stack_trace_user {
> copy_stack_frame {
> access_ok {
> WARN_ON_IN_IRQ()
>
> BOOM! Warn on.
>
> Can we make that access_ok() call in the copy_stack_frame not trigger
> the warning just if we are in an interrupt?

You really want to have access_ok_atomic() or such which does not have the
WARN and use that in copy_stack_frame(). That's fine here because the
actual copy is inside a pagefault disabled region.

Thanks,

tglx