[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEf4BzYJJiUdQTjDgr_uVSQ+uBhYWKki0vjS5VffTzbST1uS2g@mail.gmail.com>
Date: Wed, 28 Jan 2026 09:23:45 -0800
From: Andrii Nakryiko <andrii.nakryiko@...il.com>
To: Oleg Nesterov <oleg@...hat.com>
Cc: Breno Leitao <leitao@...ian.org>, Masami Hiramatsu <mhiramat@...nel.org>,
Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>, Namhyung Kim <namhyung@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>, Jiri Olsa <jolsa@...nel.org>,
Ian Rogers <irogers@...gle.com>, Adrian Hunter <adrian.hunter@...el.com>,
James Clark <james.clark@...aro.org>, Andrii Nakryiko <andrii@...nel.org>, linux-kernel@...r.kernel.org,
linux-trace-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
kernel-team@...a.com, stable@...r.kernel.org
Subject: Re: [PATCH] uprobes: fix incorrect lockdep condition in filter_chain()
On Wed, Jan 28, 2026 at 5:51 AM Oleg Nesterov <oleg@...hat.com> wrote:
>
> On 01/28, Breno Leitao wrote:
> >
> > The list_for_each_entry_rcu() in filter_chain() uses
> > rcu_read_lock_trace_held() as the lockdep condition, but the function
> > holds consumer_rwsem, not the RCU trace lock.
> >
> > This gives me the following output when running with some locking debug
> > option enabled:
> >
> > kernel/events/uprobes.c:1141 RCU-list traversed in non-reader section!!
> > filter_chain
> > register_for_each_vma
> > uprobe_unregister_nosync
> > __probe_event_disable
> >
> > Remove the incorrect lockdep condition since the rwsem provides
> > sufficient protection for the list traversal.
>
> I hope Andrii will recheck, but looks obviously correct to me.
yeah, I did, and it also looks obviously correct to me, I didn't need
to use rcu flavor there in the first place, I think.
Acked-by: Andrii Nakryiko <andrii@...nel.org>
>
> > Fixes: 87195a1ee332a ("uprobes: switch to RCU Tasks Trace flavor for better performance")
>
> This commit just change the __list_check_rcu() condition...
>
> Perhaps
> Fixes: cc01bd044e6a ("uprobes: travers uprobe's consumer list locklessly under SRCU protection")
>
yep, this one is the earliest change adding unnecessary rcu flavor of
list_for_each_entry
> makes more sense?
>
> Acked-by: Oleg Nesterov <oleg@...hat.com>
>
Powered by blists - more mailing lists