Thanks Steven, I think we've come to a consensus on this. The question here is whether bpf tracing fentry i.e., __bpf_prog_enter{_sleepable} needs to check rcu_is_watching as well before using rcu related calls. And Yonghong suggested making a change when there is indeed some bad case occurring since it's rare the tracee is in the idle path. Regards, Ze On Tue, May 23, 2023 at 10:10 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > [ Added a subject, as I always want to delete these emails as spam! ] > > On Mon, 22 May 2023 10:07:42 +0800 > Ze Gao <zegao2021@xxxxxxxxx> wrote: > > > Oops, I missed that. Thanks for pointing that out, which I thought is > > conditional use of rcu_is_watching before. > > > > One last point, I think we should double check on this > > "fentry does not filter with !rcu_is_watching" > > as quoted from Yonghong and argue whether it needs > > the same check for fentry as well. > > > > Note that trace_test_and_set_recursion() (which is used by > ftrace_test_recursion_trylock()) checks for rcu_is_watching() and > returns false if it isn't (and the trylock will fail). > > -- Steve