linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michal Kubecek <mkubecek@suse.cz>
To: Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@infradead.org>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] eventfd: convert to ->write_iter()
Date: Thu, 19 Nov 2020 00:18:35 +0100	[thread overview]
Message-ID: <20201118231835.u6hqivoayq5ej4vg@lion.mk-sys.cz> (raw)
In-Reply-To: <4e4d222c-ed8b-a40d-0cdc-cf152573645c@kernel.dk>

On Wed, Nov 18, 2020 at 02:27:08PM -0700, Jens Axboe wrote:
> On 11/18/20 12:59 PM, Michal Kubecek wrote:
> > On Wed, Nov 18, 2020 at 03:18:06PM +0000, Christoph Hellwig wrote:
> >> On Wed, Nov 18, 2020 at 10:19:17AM +0100, Michal Kubecek wrote:
> >>> While eventfd ->read() callback was replaced by ->read_iter() recently,
> >>> it still provides ->write() for writes. Since commit 4d03e3cc5982 ("fs:
> >>> don't allow kernel reads and writes without iter ops"), this prevents
> >>> kernel_write() to be used for eventfd and with set_fs() removal,
> >>> ->write() cannot be easily called directly with a kernel buffer.
> >>>
> >>> According to eventfd(2), eventfd descriptors are supposed to be (also)
> >>> used by kernel to notify userspace applications of events which now
> >>> requires ->write_iter() op to be available (and ->write() not to be).
> >>> Therefore convert eventfd_write() to ->write_iter() semantics. This
> >>> patch also cleans up the code in a similar way as commit 12aceb89b0bc
> >>> ("eventfd: convert to f_op->read_iter()") did in read_iter().
> >>
> >> A far as I can tell we don't have an in-tree user that writes to an
> >> eventfd.  We can merge something like this once there is a user.
> > 
> > As far as I can say, we don't have an in-tree user that reads from
> > sysctl. But you not only did not object to commit 4bd6a7353ee1 ("sysctl:
> > Convert to iter interfaces") which adds ->read_iter() for sysctl, that
> > commit even bears your Signed-off-by. There may be other examples like
> > that.
> 
> A better justification for this patch is that users like io_uring can
> potentially write non-blocking to the file if ->write_iter() is
> supported.

So you think the patch could be accepted with a modified commit message?
(As long as there are no technical issues, of course.) I did not really
expect there would be so much focus on a justification for a patch which
(1) converts f_ops to a more advanced (and apparently preferred)
interface and (2) makes eventfd f_ops more consistent.

For the record, my original motivation for this patch was indeed an out
of tree module (not mine) using kernel write to eventfd. But that module
can be patched to use eventfd_signal() instead and it will have to be
patched anyway unless eventfd allows kernel_write() in 5.10 (which
doesn't seem likely). So if improving the code is not considered
sufficient to justify the patch, I can live with that easily. 

Michal Kubecek

  reply	other threads:[~2020-11-18 23:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-18  9:19 [PATCH] eventfd: convert to ->write_iter() Michal Kubecek
2020-11-18 15:18 ` Christoph Hellwig
2020-11-18 19:59   ` Michal Kubecek
2020-11-18 21:27     ` Jens Axboe
2020-11-18 23:18       ` Michal Kubecek [this message]
2020-11-18 23:25         ` Jens Axboe
2020-11-18 23:34           ` Michal Kubecek
2020-11-22 14:42 ` [eventfd] 5cb13cb023: will-it-scale.per_thread_ops -6.3% regression kernel test robot

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=20201118231835.u6hqivoayq5ej4vg@lion.mk-sys.cz \
    --to=mkubecek@suse.cz \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).