From: Joe Damato <joe@dama.to>
To: Hengyu Liang <hengyul@cs.unc.edu>
Cc: brauner@kernel.org, davem@davemloft.net, edumazet@google.com,
horms@kernel.org, jack@suse.cz, jirislaby@kernel.org,
kuba@kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
netdev@vger.kernel.org, pabeni@redhat.com, sdf@fomichev.me,
shuah@kernel.org, viro@zeniv.linux.org.uk
Subject: Re: [PATCH] eventpoll: return -ENOIOCTLCMD for unknown ioctl commands
Date: Thu, 1 Oct 2026 13:05:50 -0700 [thread overview]
Message-ID: <ar69Hgsx6+PEYYCY@devvm20253.cco0.facebook.com> (raw)
In-Reply-To: <20260930095058.1062123-1-hengyul@cs.unc.edu>
On Wed, Sep 30, 2026 at 05:50:58AM -0400, Hengyu Liang wrote:
> On Fri, Sep 25, 2026 at 5:59 AM Joe Damato <joe@dama.to> wrote:
> >
> > On Thu, Sep 24, 2026 at 02:57:47PM -0400, hengyul@cs.unc.edu wrote:
>
> [...]
>
> > > default:
> > > - ret = -EINVAL;
> > > + ret = -ENOIOCTLCMD;
> > > break;
> > > }
> >
> > I think based on the documentation this is probably right, but I am now
> > wondering why both ep_eventpoll_ioctl and ep_eventpoll_bp_ioctl need to
> > exist.
> >
> > Maybe when I first implemented this I thought it made sense to factor
> > out the busy poll ioctls into their own function, but in retrospect maybe
> > it's cleaner to just collapse the ioctl function into a single one
> > instead of having two layers?
> >
> > In other words, maybe:
> > - delete ep_eventpoll_ioctl
> > - add the is_file_epoll check to ep_eventpoll_bp_ioctl
> > - rename ep_eventpoll_bp_ioctl to ep_eventpoll_ioctl
> > - fix the test (as you did in this version of the patch)
> >
> > Would result in a cleaner fewer helpers / cleaner code ?
>
> Thanks for taking a look. Agreed, a single handler would be cleaner.
> Two things I noticed while looking into it:
>
> 1. With CONFIG_NET_RX_BUSY_POLL=n, ep_eventpoll_bp_ioctl() is the stub
> that returns -EOPNOTSUPP for every command. If it became the
> .unlocked_ioctl handler as is, every ioctl on an epoll fd would fail
> with EOPNOTSUPP on those kernels, which is the same problem in a
> different config. So the stub would need to keep a small switch:
>
> static long ep_eventpoll_ioctl(struct file *file, unsigned int cmd,
> unsigned long arg)
> {
> switch (cmd) {
> case EPIOCSPARAMS:
> case EPIOCGPARAMS:
> return -EOPNOTSUPP;
> default:
> return -ENOIOCTLCMD;
> }
> }
Yea, I see. I read it more closely this time. I suspect when I wrote this
originally, I had factored the code this way that way the stub could take care
of the CONFIG_NET_RX_BUSY_POLL=n case. So, now I'm not sure it make sense to
fold them into a single handler becauase we'd end up duplicating the switch
logic in two places for each CONFIG_NET_RX_BUSY_POLL setting.
So, in retrospect, I think probably the original patch you proposed might be
the best option. Sorry if I misread it the first time.
next prev parent reply other threads:[~2026-10-01 20:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 18:57 [PATCH] eventpoll: return -ENOIOCTLCMD for unknown ioctl commands hengyul
2026-09-24 21:59 ` Joe Damato
2026-09-30 9:50 ` Hengyu Liang
2026-10-01 20:05 ` Joe Damato [this message]
2026-10-01 20:06 ` Joe Damato
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=ar69Hgsx6+PEYYCY@devvm20253.cco0.facebook.com \
--to=joe@dama.to \
--cc=brauner@kernel.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hengyul@cs.unc.edu \
--cc=horms@kernel.org \
--cc=jack@suse.cz \
--cc=jirislaby@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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.