On Sun, Aug 5, 2018 at 7:07 PM, Masami Hiramatsu wrote: > On Sun, 5 Aug 2018 09:46:56 -0700 > Joel Fernandes wrote: > >> Hi Masami, >> >> On Fri, Aug 3, 2018 at 9:51 PM, Joel Fernandes wrote: >> [...] >> >> On Thu, 2 Aug 2018 19:57:09 -0700 >> >> Joel Fernandes wrote: >> >> >> >>> Hi Masami, >> >>> >> >>> On Thu, Aug 2, 2018 at 7:55 AM, Masami Hiramatsu wrote: >> >>> > Hi Joel, >> >>> > >> >>> > I found this caused several issues when testing ftrace. >> >>> > >> >>> > #1) ftrace boottest (FTRACE_STARTUP_TEST) fails >> >>> >> >>> This sadly appears to be a real issue. The startup test for >> >>> "preemptirqsoff" tracer fails, however it passes for only preemptoff >> >>> or only irqsoff. I tested only the last 2 tracers, not the first one, >> >>> that's why I didn't catch it. I need to debug this more. >> >> I figured out this one too. Its because I need to account for >> preempt_count() in tracer_hardirqs_off since the tracer probe is now >> called with an additional level of preempt disabled from the >> tracepoint code. Without that accounting, stop_critical_timings may >> not be called causing an empty trace buffer. That should be easy to >> fix, I'm on vacation though and back on 13th so can most likely look >> at it only then (the week after the next). > > Nice! Thank you for identifying the root cause! No problem :) Thanks a lot for your help! >> >>> > #2) mmiotrace reports "IRQs not enabled as expected" error I fixed #2 too now, the attached patch based on ftrace/core should fix it (Sorry couldn't post the patch inline because I'm not at a sane email client right now). The patch is still in RFC shape, but I verified it fixes the issue. Basically, I do this in the patch: - switch to using SRCU for all tracepoints, use a separate SRCU node for NMI context (Paul, Mathieu would love to get your thoughts here). This is to remove dependence on sched-RCU. - use tracepoints even after CPUs are offline >> >>> > #3) lock subsystem event boottest causes "IRQs not disabled as expected" error (sometimes) >> The only thing left to figure out is #3 ("lock subsystem event >> boottest"). Could you let me know how to run this test? > > The #3 is not always reproducible, I just enabled these 2 configs > > CONFIG_FTRACE_STARTUP_TEST=y and CONFIG_EVENT_TRACE_TEST_SYSCALLS=y Thanks, I am also able to see this now some of the times. I have certain builds where this is much faster to reproduce so I'll use those. - Joel