Re: RCU stall when using function_graph

Pratyush Anand
2017-08-09T09:13:54Z

On Sunday 06 August 2017 10:32 PM, Paul E. McKenney wrote:
> On Sat, Aug 05, 2017 at 02:24:21PM +0900, 김동현 wrote:
>> Dear All
>>
>> As for me, after configuring function_graph as below, crash disappears.
>> "echo 0 > d/tracing/tracing_on"
>> "sleep 1"
>>
>> "echo function_graph > d/tracing/current_tracer"
>> "sleep 1"
>>
>> "echo smp_call_function_single > d/tracing/set_ftrace_filter"

It will limit trace output to only for the filtered function
(smp_call_function_single).

>> adb shell "sleep 1"
>>
>> "echo 1 > d/tracing/tracing_on"
>> adb shell "sleep 1"
>>
>> Right after function_graph is enabled, too many logs are traced upon IRQ
>> transaction which many times eventually causes stall.
>
> That would do it!
>
> Hmmm...
>
> Steven, would it be helpful if RCU were to inform tracing (say) halfway
> through the RCU CPU stall interval, allowing the tracer to do something
> like cond_resched_rcu_qs()? I can imagine all sorts of reasons why this
> wouldn't work, for example, if all the tracing was with irqs disabled
> or some such, but figured I should ask.
>
> Does Guillermo's approach work for others?

Limited output with a couple of filtered function will definitely not cause
RCU schedule stall. But the question is whether we should expect a full
function graph trace working on every platform or not (specially the one which
generates high interrupts)?

--
Regards
Pratyush