[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/7] migration: Drop/unexport migration_is_device() and migrat
From: |
Avihai Horon |
Subject: |
[PATCH v2 0/7] migration: Drop/unexport migration_is_device() and migration_is_active() |
Date: |
Wed, 18 Dec 2024 15:40:15 +0200 |
Hello,
This follows up on Peter's series [1] to simplify migration status API
to a single migration_is_running() function.
Peter's series tried to drop migration_is_device() and
migration_is_active(), however VFIO used them to check if dirty page
tracking has been started in order to avoid errors in log sync, so they
couldn't simply be dropped without some preliminary cleanups.
This series handles these preliminary cleanups and eventually drops
migration_is_device() and unexports migration_is_active().
The series has been migration tested with the following:
- VFIO device dirty tracking.
- Legacy VFIO iommu dirty tracking.
- vIOMMU + Legacy VFIO iommu dirty tracking (migration with vIOMMU is
currently blocked, so I used a patched QEMU to allow it).
I also tested calc-dirty-rate as now VFIO dirty pages should be included
in its report, and indeed they are.
I didn't test it with iommu DPT as I don't have access to such HW.
It would be great if someone with the proper HW could test it.
Patch structure:
1-4: Refactor and clean up VFIO dirty page tracking helpers.
5: Refactor dirty limit code.
6-7: Drop/unexport migration_is_device() and migration_is_running().
Changes from v1 [2]:
* Bail out early in vfio_container_set_dirty_page_tracking() if dirty
tracking has already been started/stopped. (Joao)
* Untied the dirty tracking helpers from migration (i.e., removed
migration_is_running() check) so VFIO dirty pages will be included in
calc-dirty-rate. (Joao)
* Added comment to VFIODevice->dirty_tracking that states it's protected
by BQL.
* Added R-b/A-b tags.
Thanks.
[1]
https://lore.kernel.org/qemu-devel/20241024213056.1395400-1-peterx@redhat.com/
[2]
20241216094638.26406-1-avihaih@nvidia.com/">https://lore.kernel.org/qemu-devel/20241216094638.26406-1-avihaih@nvidia.com/
Avihai Horon (7):
vfio/container: Add dirty tracking started flag
vfio/migration: Refactor vfio_devices_all_dirty_tracking() logic
vfio/migration: Refactor vfio_devices_all_running_and_mig_active()
logic
vfio/migration: Rename vfio_devices_all_dirty_tracking()
system/dirtylimit: Don't use migration_is_active()
migration: Drop migration_is_device()
migration: Unexport migration_is_active()
include/hw/vfio/vfio-common.h | 6 +--
include/hw/vfio/vfio-container-base.h | 1 +
include/migration/misc.h | 2 -
hw/vfio/common.c | 57 +++++++++++----------------
hw/vfio/container-base.c | 12 +++++-
hw/vfio/container.c | 2 +-
migration/migration.c | 23 ++++-------
system/dirtylimit.c | 3 +-
8 files changed, 49 insertions(+), 57 deletions(-)
--
2.40.1
- [PATCH v2 0/7] migration: Drop/unexport migration_is_device() and migration_is_active(),
Avihai Horon <=
- [PATCH v2 4/7] vfio/migration: Rename vfio_devices_all_dirty_tracking(), Avihai Horon, 2024/12/18
- [PATCH v2 3/7] vfio/migration: Refactor vfio_devices_all_running_and_mig_active() logic, Avihai Horon, 2024/12/18
- [PATCH v2 5/7] system/dirtylimit: Don't use migration_is_active(), Avihai Horon, 2024/12/18
- [PATCH v2 6/7] migration: Drop migration_is_device(), Avihai Horon, 2024/12/18
- [PATCH v2 7/7] migration: Unexport migration_is_active(), Avihai Horon, 2024/12/18
- [PATCH v2 2/7] vfio/migration: Refactor vfio_devices_all_dirty_tracking() logic, Avihai Horon, 2024/12/18
- [PATCH v2 1/7] vfio/container: Add dirty tracking started flag, Avihai Horon, 2024/12/18
- Re: [PATCH v2 0/7] migration: Drop/unexport migration_is_device() and migration_is_active(), Joao Martins, 2024/12/23