From: "Cédric Le Goater" <clg@redhat.com>
To: Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org
Cc: "Joao Martins" <joao.m.martins@oracle.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Avihai Horon" <avihaih@nvidia.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Prasad Pandit" <ppandit@redhat.com>,
"Alex Williamson" <alex@shazbot.org>,
"Kirti Wankhede" <kwankhede@nvidia.com>,
"Zhiyi Guo" <zhguo@redhat.com>,
"Maciej S . Szmigiero" <mail@maciej.szmigiero.name>,
"Juraj Marcin" <jmarcin@redhat.com>
Subject: Re: [PATCH v2 16/16] vfio/migration: Add tracepoints for precopy/stopcopy query ioctls
Date: Wed, 22 Apr 2026 09:51:12 +0200 [thread overview]
Message-ID: <cf98d37e-e5bd-4dc9-9a6f-aec404a8d3b9@redhat.com> (raw)
In-Reply-To: <20260421202110.306051-17-peterx@redhat.com>
On 4/21/26 22:21, Peter Xu wrote:
> Add two tracepoints for both precopy and stopcopy query ioctls. When at
> it, add one warn_report_once() for each of them when it fails.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Thanks,
C.
> ---
> hw/vfio/migration.c | 33 +++++++++++++++++++++++----------
> hw/vfio/trace-events | 2 ++
> 2 files changed, 25 insertions(+), 10 deletions(-)
>
> diff --git a/hw/vfio/migration.c b/hw/vfio/migration.c
> index e6e6a0d53d..04d9f94edb 100644
> --- a/hw/vfio/migration.c
> +++ b/hw/vfio/migration.c
> @@ -329,6 +329,7 @@ static int vfio_query_stop_copy_size(VFIODevice *vbasedev)
> struct vfio_device_feature_mig_data_size *mig_data_size =
> (struct vfio_device_feature_mig_data_size *)feature->data;
> VFIOMigration *migration = vbasedev->migration;
> + int ret;
>
> feature->argsz = sizeof(buf);
> feature->flags =
> @@ -340,12 +341,18 @@ static int vfio_query_stop_copy_size(VFIODevice *vbasedev)
> * is reported so downtime limit won't be violated.
> */
> migration->stopcopy_size = VFIO_MIG_STOP_COPY_SIZE;
> - return -errno;
> + ret = -errno;
> + warn_report_once("VFIO device %s ioctl(VFIO_DEVICE_FEATURE) on "
> + "VFIO_DEVICE_FEATURE_MIG_DATA_SIZE failed (%d)",
> + vbasedev->name, ret);
> + } else {
> + migration->stopcopy_size = mig_data_size->stop_copy_length;
> + ret = 0;
> }
>
> - migration->stopcopy_size = mig_data_size->stop_copy_length;
> + trace_vfio_query_stop_copy_size(migration->stopcopy_size, ret);
>
> - return 0;
> + return ret;
> }
>
> static int vfio_query_precopy_size(VFIOMigration *migration)
> @@ -353,18 +360,24 @@ static int vfio_query_precopy_size(VFIOMigration *migration)
> struct vfio_precopy_info precopy = {
> .argsz = sizeof(precopy),
> };
> -
> - migration->precopy_init_size = 0;
> - migration->precopy_dirty_size = 0;
> + int ret;
>
> if (ioctl(migration->data_fd, VFIO_MIG_GET_PRECOPY_INFO, &precopy)) {
> - return -errno;
> + migration->precopy_init_size = 0;
> + migration->precopy_dirty_size = 0;
> + ret = -errno;
> + warn_report_once("VFIO device %s ioctl(VFIO_MIG_GET_PRECOPY_INFO) "
> + "failed (%d)", migration->vbasedev->name, ret);
> + } else {
> + migration->precopy_init_size = precopy.initial_bytes;
> + migration->precopy_dirty_size = precopy.dirty_bytes;
> + ret = 0;
> }
>
> - migration->precopy_init_size = precopy.initial_bytes;
> - migration->precopy_dirty_size = precopy.dirty_bytes;
> + trace_vfio_query_precopy_size(migration->precopy_init_size,
> + migration->precopy_dirty_size, ret);
>
> - return 0;
> + return ret;
> }
>
> /* Returns the size of saved data on success and -errno on error */
> diff --git a/hw/vfio/trace-events b/hw/vfio/trace-events
> index 287df0b8cb..854a7e4b19 100644
> --- a/hw/vfio/trace-events
> +++ b/hw/vfio/trace-events
> @@ -176,6 +176,8 @@ vfio_save_setup(const char *name, uint64_t data_buffer_size) " (%s) data buffer
> vfio_state_pending(const char *name, uint64_t stopcopy_size, uint64_t precopy_init_size, uint64_t precopy_dirty_size, bool exact) " (%s) stopcopy size %"PRIu64" precopy initial size %"PRIu64" precopy dirty size %"PRIu64 " exact %d"
> vfio_vmstate_change(const char *name, int running, const char *reason, const char *dev_state) " (%s) running %d reason %s device state %s"
> vfio_vmstate_change_prepare(const char *name, int running, const char *reason, const char *dev_state) " (%s) running %d reason %s device state %s"
> +vfio_query_stop_copy_size(uint64_t size, int ret) "stopcopy size %"PRIu64" ret %d"
> +vfio_query_precopy_size(uint64_t init_size, uint64_t dirty_size, int ret) "init %"PRIu64" dirty %"PRIu64" ret %d"
>
> #iommufd.c
>
next prev parent reply other threads:[~2026-04-22 7:51 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-21 20:20 [PATCH v2 00/16] migration/vfio: Fix a few issues on API misuse or statistic reports Peter Xu
2026-04-21 20:20 ` [PATCH v2 01/16] qemu-iotests: Add query-migrate test for dirty-bitmap Peter Xu
2026-04-22 8:08 ` Vladimir Sementsov-Ogievskiy
2026-04-24 14:50 ` Peter Xu
2026-04-21 20:20 ` [PATCH v2 02/16] migration: Fix low possibility downtime violation Peter Xu
2026-04-21 20:20 ` [PATCH v2 03/16] migration/qapi: Rename MigrationStats to MigrationRAMStats Peter Xu
2026-04-24 9:03 ` Markus Armbruster
2026-04-21 20:20 ` [PATCH v2 04/16] vfio/migration: Cache stop size in VFIOMigration Peter Xu
2026-04-21 20:20 ` [PATCH v2 05/16] migration/treewide: Merge @state_pending_{exact|estimate} APIs Peter Xu
2026-04-22 8:23 ` Vladimir Sementsov-Ogievskiy
2026-04-22 8:29 ` Vladimir Sementsov-Ogievskiy
2026-04-22 15:44 ` Peter Xu
2026-04-22 17:06 ` Vladimir Sementsov-Ogievskiy
2026-04-21 20:21 ` [PATCH v2 06/16] migration: Use the new save_query_pending() API directly Peter Xu
2026-04-21 20:21 ` [PATCH v2 07/16] migration: Introduce stopcopy_bytes in save_query_pending() Peter Xu
2026-04-22 13:16 ` Juraj Marcin
2026-04-23 15:05 ` Avihai Horon
2026-04-21 20:21 ` [PATCH v2 08/16] vfio/migration: Fix incorrect reporting for VFIO pending data Peter Xu
2026-04-21 20:21 ` [PATCH v2 09/16] migration: Move iteration counter out of RAM Peter Xu
2026-04-21 20:21 ` [PATCH v2 10/16] migration: Introduce a helper to return switchover bw estimate Peter Xu
2026-04-21 20:21 ` [PATCH v2 11/16] migration: Calculate expected downtime on demand Peter Xu
2026-04-21 20:21 ` [PATCH v2 12/16] migration: Fix calculation of expected_downtime to take VFIO info Peter Xu
2026-04-21 20:21 ` [PATCH v2 13/16] migration: Remember total dirty bytes in mig_stats Peter Xu
2026-04-22 13:18 ` Juraj Marcin
2026-04-21 20:21 ` [PATCH v2 14/16] migration/qapi: Introduce system-wise "remaining" reports Peter Xu
2026-04-24 7:17 ` Markus Armbruster
2026-04-24 15:15 ` Peter Xu
2026-04-25 5:46 ` Markus Armbruster
2026-04-28 15:26 ` Peter Xu
2026-04-28 19:02 ` Markus Armbruster
2026-04-21 20:21 ` [PATCH v2 15/16] migration/qapi: Update unit for avail-switchover-bandwidth Peter Xu
2026-04-24 7:18 ` Markus Armbruster
2026-04-21 20:21 ` [PATCH v2 16/16] vfio/migration: Add tracepoints for precopy/stopcopy query ioctls Peter Xu
2026-04-22 7:51 ` Cédric Le Goater [this message]
2026-04-22 7:52 ` Cédric Le Goater
2026-04-22 9:56 ` Cédric Le Goater
2026-04-23 15:10 ` Avihai Horon
2026-04-29 14:46 ` Avihai Horon
2026-04-29 15:43 ` Peter Xu
2026-04-29 18:03 ` Avihai Horon
2026-04-29 19:52 ` [PATCH v2 00/16] migration/vfio: Fix a few issues on API misuse or statistic reports Peter Xu
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=cf98d37e-e5bd-4dc9-9a6f-aec404a8d3b9@redhat.com \
--to=clg@redhat.com \
--cc=alex@shazbot.org \
--cc=armbru@redhat.com \
--cc=avihaih@nvidia.com \
--cc=berrange@redhat.com \
--cc=farosas@suse.de \
--cc=jmarcin@redhat.com \
--cc=joao.m.martins@oracle.com \
--cc=kwankhede@nvidia.com \
--cc=mail@maciej.szmigiero.name \
--cc=peterx@redhat.com \
--cc=ppandit@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=zhguo@redhat.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.