From: Ingo Molnar <mingo@kernel.org>
To: Tao Chen <chen.dylane@linux.dev>
Cc: peterz@infradead.org, mingo@redhat.com, acme@kernel.org,
namhyung@kernel.org, mark.rutland@arm.com,
alexander.shishkin@linux.intel.com, jolsa@kernel.org,
irogers@google.com, adrian.hunter@intel.com,
kan.liang@linux.intel.com, linux-perf-users@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH linux-next] perf/ring_buffer: Add EPOLLRDNORM flag for poll
Date: Thu, 13 Mar 2025 18:09:45 +0100 [thread overview]
Message-ID: <Z9MRWT5PWtPaY-pl@gmail.com> (raw)
In-Reply-To: <87b67a79-d97e-4f81-9bf2-aa34d613b5bf@linux.dev>
* Tao Chen <chen.dylane@linux.dev> wrote:
> 在 2025/3/13 18:05, Ingo Molnar 写道:
> >
> > * Tao Chen <chen.dylane@linux.dev> wrote:
> >
> > > The poll man page says POLLRDNORM is equivalent to POLLIN,
> > > so add EPOLLRDNORM here.
> > >
> > > Signed-off-by: Tao Chen <chen.dylane@linux.dev>
> > > ---
> > > kernel/events/ring_buffer.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c
> > > index 59a52b1a1..5130b119d 100644
> > > --- a/kernel/events/ring_buffer.c
> > > +++ b/kernel/events/ring_buffer.c
> > > @@ -19,7 +19,7 @@
> > > static void perf_output_wakeup(struct perf_output_handle *handle)
> > > {
> > > - atomic_set(&handle->rb->poll, EPOLLIN);
> > > + atomic_set(&handle->rb->poll, EPOLLIN | EPOLLRDNORM);
> >
> > So what does EPOLLRDNORM mean to begin with? There doesn't seem to be
> > separate/specific handling of it anywhere in the kernel that I can
> > see...
> >
>
> It seems that if user set pollfd with POLLRDNORM, perf_poll will not return
> until timeout even if perf_output_wakeup called, whereas POLLIN returns.
Mind adding this to the changelog, and explain that this patch fixes
this particular poll() functionality and semantics for userspace?
Thanks,
Ingo
next prev parent reply other threads:[~2025-03-13 17:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-13 5:10 [PATCH linux-next] perf/ring_buffer: Add EPOLLRDNORM flag for poll Tao Chen
2025-03-13 10:05 ` Ingo Molnar
2025-03-13 17:03 ` Tao Chen
2025-03-13 17:09 ` Ingo Molnar [this message]
2025-03-13 23:26 ` Tao Chen
2025-03-14 2:31 ` Namhyung Kim
2025-03-14 8:39 ` Ingo Molnar
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=Z9MRWT5PWtPaY-pl@gmail.com \
--to=mingo@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=chen.dylane@linux.dev \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox