Re: kprobes and rcu_is_watching()
From: Ze Gao <hidden>
Date: 2023-05-24 03:52:17
Also in:
bpf, linux-trace-kernel, lkml
From: Ze Gao <hidden>
Date: 2023-05-24 03:52:17
Also in:
bpf, linux-trace-kernel, lkml
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 [off-list ref] 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 [off-list ref] wrote:quoted
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