From: Stefan Hajnoczi <stefanha@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, "Peter Lieven" <pl@kamp.de>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Xie Yongji" <xieyongji@bytedance.com>,
"Juan Quintela" <quintela@redhat.com>,
qemu-block@nongnu.org, "Eduardo Habkost" <eduardo@habkost.net>,
"Richard Henderson" <richard.henderson@linaro.org>,
"David Woodhouse" <dwmw2@infradead.org>,
"Stefan Weil" <sw@weilnetz.de>, "Fam Zheng" <fam@euphon.net>,
"Julia Suvorova" <jusual@redhat.com>,
"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
xen-devel@lists.xenproject.org, "Hanna Reitz" <hreitz@redhat.com>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
eesposit@redhat.com, "Kevin Wolf" <kwolf@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Paul Durrant" <paul@xen.org>,
"Aarushi Mehta" <mehta.aaru20@gmail.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Anthony Perard" <anthony.perard@citrix.com>,
"Richard W.M. Jones" <rjones@redhat.com>,
"Coiby Xu" <Coiby.Xu@gmail.com>,
"Stefano Garzarella" <sgarzare@redhat.com>
Subject: Re: [PATCH v3 20/20] aio: remove aio_disable_external() API
Date: Tue, 25 Apr 2023 12:29:50 -0400 [thread overview]
Message-ID: <20230425162950.GB725672@fedora> (raw)
In-Reply-To: <f7b20c96-be06-2299-5589-11dbf23251f8@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 5303 bytes --]
On Thu, Apr 20, 2023 at 03:44:06PM +0200, Philippe Mathieu-Daudé wrote:
> On 20/4/23 13:37, Stefan Hajnoczi wrote:
> > All callers now pass is_external=false to aio_set_fd_handler() and
> > aio_set_event_notifier(). The aio_disable_external() API that
> > temporarily disables fd handlers that were registered is_external=true
> > is therefore dead code.
> >
> > Remove aio_disable_external(), aio_enable_external(), and the
> > is_external arguments to aio_set_fd_handler() and
> > aio_set_event_notifier().
> >
> > The entire test-fdmon-epoll test is removed because its sole purpose was
> > testing aio_disable_external().
> >
> > Parts of this patch were generated using the following coccinelle
> > (https://coccinelle.lip6.fr/) semantic patch:
> >
> > @@
> > expression ctx, fd, is_external, io_read, io_write, io_poll, io_poll_ready, opaque;
> > @@
> > - aio_set_fd_handler(ctx, fd, is_external, io_read, io_write, io_poll, io_poll_ready, opaque)
> > + aio_set_fd_handler(ctx, fd, io_read, io_write, io_poll, io_poll_ready, opaque)
> >
> > @@
> > expression ctx, notifier, is_external, io_read, io_poll, io_poll_ready;
> > @@
> > - aio_set_event_notifier(ctx, notifier, is_external, io_read, io_poll, io_poll_ready)
> > + aio_set_event_notifier(ctx, notifier, io_read, io_poll, io_poll_ready)
> >
> > Reviewed-by: Juan Quintela <quintela@redhat.com>
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > ---
> > include/block/aio.h | 55 --------------------------
> > util/aio-posix.h | 1 -
> > block.c | 7 ----
> > block/blkio.c | 15 +++----
> > block/curl.c | 10 ++---
> > block/export/fuse.c | 8 ++--
> > block/export/vduse-blk.c | 10 ++---
> > block/io.c | 2 -
> > block/io_uring.c | 4 +-
> > block/iscsi.c | 3 +-
> > block/linux-aio.c | 4 +-
> > block/nfs.c | 5 +--
> > block/nvme.c | 8 ++--
> > block/ssh.c | 4 +-
> > block/win32-aio.c | 6 +--
> > hw/i386/kvm/xen_xenstore.c | 2 +-
> > hw/virtio/virtio.c | 6 +--
> > hw/xen/xen-bus.c | 8 ++--
> > io/channel-command.c | 6 +--
> > io/channel-file.c | 3 +-
> > io/channel-socket.c | 3 +-
> > migration/rdma.c | 16 ++++----
> > tests/unit/test-aio.c | 27 +------------
> > tests/unit/test-fdmon-epoll.c | 73 -----------------------------------
> > util/aio-posix.c | 20 +++-------
> > util/aio-win32.c | 8 +---
> > util/async.c | 3 +-
> > util/fdmon-epoll.c | 10 -----
> > util/fdmon-io_uring.c | 8 +---
> > util/fdmon-poll.c | 3 +-
> > util/main-loop.c | 7 ++--
> > util/qemu-coroutine-io.c | 7 ++--
> > util/vhost-user-server.c | 11 +++---
> > tests/unit/meson.build | 3 --
> > 34 files changed, 76 insertions(+), 290 deletions(-)
> > delete mode 100644 tests/unit/test-fdmon-epoll.c
>
>
> > -/**
> > - * aio_disable_external:
> > - * @ctx: the aio context
> > - *
> > - * Disable the further processing of external clients.
> > - */
> > -static inline void aio_disable_external(AioContext *ctx)
> > -{
> > - qatomic_inc(&ctx->external_disable_cnt);
> > -}
> > -
> > -/**
> > - * aio_enable_external:
> > - * @ctx: the aio context
> > - *
> > - * Enable the processing of external clients.
> > - */
> > -static inline void aio_enable_external(AioContext *ctx)
> > -{
> > - int old;
> > -
> > - old = qatomic_fetch_dec(&ctx->external_disable_cnt);
> > - assert(old > 0);
> > - if (old == 1) {
> > - /* Kick event loop so it re-arms file descriptors */
> > - aio_notify(ctx);
> > - }
> > -}
> > -
> > -/**
> > - * aio_external_disabled:
> > - * @ctx: the aio context
> > - *
> > - * Return true if the external clients are disabled.
> > - */
> > -static inline bool aio_external_disabled(AioContext *ctx)
> > -{
> > - return qatomic_read(&ctx->external_disable_cnt);
> > -}
>
> Missing:
>
> -- >8 --
> diff --git a/include/block/aio.h b/include/block/aio.h
> index d4ce01ea08..266be26f8e 100644
> --- a/include/block/aio.h
> +++ b/include/block/aio.h
> @@ -224,6 +224,4 @@ struct AioContext {
> QEMUTimerListGroup tlg;
>
> - int external_disable_cnt;
> -
> /* Number of AioHandlers without .io_poll() */
> int poll_disable_cnt;
> diff --git a/tests/unit/test-bdrv-drain.c b/tests/unit/test-bdrv-drain.c
> index d9d3807062..5c89169e46 100644
> --- a/tests/unit/test-bdrv-drain.c
> +++ b/tests/unit/test-bdrv-drain.c
> @@ -436,5 +436,4 @@ static void test_graph_change_drain_all(void)
> g_assert_cmpint(bs_b->quiesce_counter, ==, 0);
> g_assert_cmpint(b_s->drain_count, ==, 0);
> - g_assert_cmpint(qemu_get_aio_context()->external_disable_cnt, ==, 0);
>
> bdrv_unref(bs_b);
> ---
>
> Once cleaned:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Oh, yes! Thank you.
Stefan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2023-04-25 16:30 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-20 11:37 [PATCH v3 00/20] block: remove aio_disable_external() API Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 01/20] hw/qdev: introduce qdev_is_realized() helper Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 02/20] virtio-scsi: avoid race between unplug and transport event Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 03/20] virtio-scsi: stop using aio_disable_external() during unplug Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 04/20] block/export: only acquire AioContext once for vhost_user_server_stop() Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 05/20] util/vhost-user-server: rename refcount to in_flight counter Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 06/20] block/export: wait for vhost-user-blk requests when draining Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 07/20] block/export: stop using is_external in vhost-user-blk server Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 08/20] hw/xen: do not use aio_set_fd_handler(is_external=true) in xen_xenstore Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 09/20] block: add blk_in_drain() API Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 10/20] block: drain from main loop thread in bdrv_co_yield_to_drain() Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 11/20] xen-block: implement BlockDevOps->drained_begin() Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 12/20] hw/xen: do not set is_external=true on evtchn fds Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 13/20] block/export: rewrite vduse-blk drain code Stefan Hajnoczi
2023-04-21 3:36 ` Yongji Xie
2023-04-25 16:42 ` Stefan Hajnoczi
2023-04-26 2:23 ` Yongji Xie
2023-04-20 11:37 ` [PATCH v3 14/20] block/export: don't require AioContext lock around blk_exp_ref/unref() Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 15/20] block/fuse: do not set is_external=true on FUSE fd Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 16/20] virtio: make it possible to detach host notifier from any thread Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 17/20] virtio-blk: implement BlockDevOps->drained_begin() Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 18/20] virtio-scsi: " Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 19/20] virtio: do not set is_external=true on host notifiers Stefan Hajnoczi
2023-04-20 11:37 ` [PATCH v3 20/20] aio: remove aio_disable_external() API Stefan Hajnoczi
2023-04-20 13:44 ` Philippe Mathieu-Daudé
2023-04-25 16:29 ` Stefan Hajnoczi [this message]
2023-04-20 13:39 ` [PATCH v3 00/20] block: " Philippe Mathieu-Daudé
2023-04-25 16:29 ` Stefan Hajnoczi
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=20230425162950.GB725672@fedora \
--to=stefanha@redhat.com \
--cc=Coiby.Xu@gmail.com \
--cc=anthony.perard@citrix.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=dwmw2@infradead.org \
--cc=eduardo@habkost.net \
--cc=eesposit@redhat.com \
--cc=fam@euphon.net \
--cc=hreitz@redhat.com \
--cc=jusual@redhat.com \
--cc=kwolf@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mehta.aaru20@gmail.com \
--cc=mst@redhat.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=pl@kamp.de \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=richard.henderson@linaro.org \
--cc=rjones@redhat.com \
--cc=ronniesahlberg@gmail.com \
--cc=sgarzare@redhat.com \
--cc=sstabellini@kernel.org \
--cc=sw@weilnetz.de \
--cc=xen-devel@lists.xenproject.org \
--cc=xieyongji@bytedance.com \
/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.