From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Kumar Kartikeya Dwivedi <memxor@gmail.com>,
Samuel Wu <wusamuel@google.com>, Len Brown <lenb@kernel.org>,
Pavel Machek <pavel@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
Martin KaFai Lau <martin.lau@linux.dev>,
Eduard Zingerman <eddyz87@gmail.com>, Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
Jiri Olsa <jolsa@kernel.org>, Shuah Khan <shuah@kernel.org>,
Android Kernel Team <kernel-team@android.com>,
LKML <linux-kernel@vger.kernel.org>,
Linux Power Management <linux-pm@vger.kernel.org>,
driver-core@lists.linux.dev, bpf <bpf@vger.kernel.org>,
"open list:KERNEL SELFTEST FRAMEWORK"
<linux-kselftest@vger.kernel.org>
Subject: Re: [PATCH v4 0/2] Support BPF traversal of wakeup sources
Date: Thu, 14 May 2026 09:21:49 +0200 [thread overview]
Message-ID: <2026051417-handbook-uncivil-1a56@gregkh> (raw)
In-Reply-To: <CAADnVQLvuCKLUHnxcEx2+t4diLmuOb9VSthoDea5iktsAZxhTg@mail.gmail.com>
On Wed, May 13, 2026 at 02:03:39PM -0700, Alexei Starovoitov wrote:
> On Wed, May 13, 2026 at 12:52 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
> >
> > On Wed, May 13, 2026 at 2:51 AM Alexei Starovoitov
> > <alexei.starovoitov@gmail.com> wrote:
> > >
> > > On Mon, May 11, 2026 at 1:44 PM Kumar Kartikeya Dwivedi
> > > <memxor@gmail.com> wrote:
> > > >
> > > > On Mon, 11 May 2026 at 19:50, Samuel Wu <wusamuel@google.com> wrote:
> > > > >
> > > > > This patchset adds requisite kfuncs for BPF programs to safely traverse
> > > > > wakeup_sources, and puts a config flag around the sysfs interface.
> > > > >
> > > > > Currently, a traversal of wakeup sources require going through
> > > > > /sys/class/wakeup/* or /d/wakeup_sources/*. The repeated syscalls to query
> > > > > sysfs is inefficient, as there can be hundreds of wakeup_sources, with each
> > > > > wakeup source also having multiple attributes. debugfs is unstable and
> > > > > insecure.
> > > > >
> > > > > Adding kfuncs to lock/unlock wakeup sources allows BPF program to safely
> > > > > traverse the wakeup sources list, and a kfunc to get head of wakeup
> > > > > sources list is needed to start traversing the list.
> > > > >
> > > > > On a quiescent Pixel 6 traversing 150 wakeup_sources, I am seeing ~34x
> > > > > speedup (sampled 75 times in table below). For a device under load, the
> > > > > speedup is greater.
> > > > > +-------+----+----------+----------+
> > > > > | | n | AVG (ms) | STD (ms) |
> > > > > +-------+----+----------+----------+
> > > > > | sysfs | 75 | 44.9 | 12.6 |
> > > > > +-------+----+----------+----------+
> > > > > | BPF | 75 | 1.3 | 0.7 |
> > > > > +-------+----+----------+----------+
> > > > >
> > > > > The initial attempts for BPF traversal of wakeup_sources was with BPF
> > > > > iterators [1]. However, BPF already allows for traversing of a simple list
> > > > > with bpf_for(), and this current patchset has the added benefit of being
> > > > > ~2-3x more performant than BPF iterators.
> > > >
> > > > This looks good to me, you can add for the set:
> > > > Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
> > >
> > > Rafael,
> > > how do you want to route it?
> > >
> > > If you ack it we can take it into bpf-next.
> >
> > I guess if someone really wants this, I have no particular reason to
> > object, so please feel free to add
> >
> > Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org>
> >
> > to the first patch.
> >
> > > I'd think patch 1 shouldn't conflict with other 'wakeup' changes.
> >
> > Sure, there are none ATM anyway.
>
> Thanks!
>
> Greg,
> are you ok with it too?
> I hear your api concerns, but imo it's a nice improvement.
> And bpf is not a stable interface despite some sceptics saying otherwise.
> Just see how much sched-ext api surface has changed.
>
> So if pm:wakeup folks need to tweak it later they're certainly
> free to do it. Of course, it's better to keep things backward compact
> and deprecate gradually. All options in developer's hands.
I still feel it's really odd to be wanting to iterate over a zillion
sysfs files all at once, but sure, if this fixes the problem for this
user, might as well take it...
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
next prev parent reply other threads:[~2026-05-14 7:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-11 17:45 [PATCH v4 0/2] Support BPF traversal of wakeup sources Samuel Wu
2026-05-11 17:45 ` [PATCH v4 1/2] PM: wakeup: Add kfuncs to traverse over wakeup_sources Samuel Wu
2026-05-11 18:27 ` bot+bpf-ci
2026-05-11 20:06 ` Samuel Wu
2026-05-12 23:36 ` sashiko-bot
2026-05-11 17:45 ` [PATCH v4 2/2] selftests/bpf: Add tests for wakeup_sources kfuncs Samuel Wu
2026-05-12 23:58 ` sashiko-bot
2026-05-11 20:44 ` [PATCH v4 0/2] Support BPF traversal of wakeup sources Kumar Kartikeya Dwivedi
2026-05-13 0:51 ` Alexei Starovoitov
2026-05-13 19:52 ` Rafael J. Wysocki
2026-05-13 21:03 ` Alexei Starovoitov
2026-05-14 7:21 ` Greg Kroah-Hartman [this message]
2026-05-14 23:20 ` patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2026051417-handbook-uncivil-1a56@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=dakr@kernel.org \
--cc=daniel@iogearbox.net \
--cc=driver-core@lists.linux.dev \
--cc=eddyz87@gmail.com \
--cc=jolsa@kernel.org \
--cc=kernel-team@android.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=memxor@gmail.com \
--cc=pavel@kernel.org \
--cc=rafael@kernel.org \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=wusamuel@google.com \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.