[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAD8CoPCHnTMOzqxJT+9Bg7aP=y8Jt4VUV1=xpBopNZv7VkBU8w@mail.gmail.com>
Date: Wed, 24 May 2023 11:51:58 +0800
From: Ze Gao <zegao2021@...il.com>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Jiri Olsa <olsajiri@...il.com>, Yonghong Song <yhs@...a.com>,
Alexei Starovoitov <ast@...nel.org>, Andrii Nakryiko <andrii@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>, Hao Luo <haoluo@...gle.com>,
John Fastabend <john.fastabend@...il.com>, KP Singh <kpsingh@...nel.org>,
Martin KaFai Lau <martin.lau@...ux.dev>, Masami Hiramatsu <mhiramat@...nel.org>, Song Liu <song@...nel.org>,
Stanislav Fomichev <sdf@...gle.com>, Yonghong Song <yhs@...com>, bpf@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-trace-kernel@...r.kernel.org,
kafai@...com, kpsingh@...omium.org, netdev@...r.kernel.org,
paulmck@...nel.org, songliubraving@...com, Ze Gao <zegao@...cent.com>
Subject: Re: kprobes and rcu_is_watching()
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@...dmis.org> 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@...il.com> 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
Powered by blists - more mailing lists