[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH V3 03/42] migration: lower handler priority
From: |
Steve Sistare |
Subject: |
[PATCH V3 03/42] migration: lower handler priority |
Date: |
Mon, 12 May 2025 08:32:14 -0700 |
Define a vmstate priority that is lower than the default, so its handlers
run after all default priority handlers. Since 0 is no longer the default
priority, translate an uninitialized priority of 0 to MIG_PRI_DEFAULT.
CPR for vfio will use this to install handlers for containers that run
after handlers for the devices that they contain.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
---
include/migration/vmstate.h | 6 +++++-
migration/savevm.c | 4 ++--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
index a1dfab4..1ff7bd9 100644
--- a/include/migration/vmstate.h
+++ b/include/migration/vmstate.h
@@ -155,7 +155,11 @@ enum VMStateFlags {
};
typedef enum {
- MIG_PRI_DEFAULT = 0,
+ MIG_PRI_UNINITIALIZED = 0, /* An uninitialized priority field maps to */
+ /* MIG_PRI_DEFAULT in save_state_priority */
+
+ MIG_PRI_LOW, /* Must happen after default */
+ MIG_PRI_DEFAULT,
MIG_PRI_IOMMU, /* Must happen before PCI devices */
MIG_PRI_PCI_BUS, /* Must happen before IOMMU */
MIG_PRI_VIRTIO_MEM, /* Must happen before IOMMU */
diff --git a/migration/savevm.c b/migration/savevm.c
index 006514c..7e87815 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -266,7 +266,7 @@ typedef struct SaveState {
static SaveState savevm_state = {
.handlers = QTAILQ_HEAD_INITIALIZER(savevm_state.handlers),
- .handler_pri_head = { [MIG_PRI_DEFAULT ... MIG_PRI_MAX] = NULL },
+ .handler_pri_head = { [0 ... MIG_PRI_MAX] = NULL },
.global_section_id = 0,
};
@@ -737,7 +737,7 @@ static int calculate_compat_instance_id(const char *idstr)
static inline MigrationPriority save_state_priority(SaveStateEntry *se)
{
- if (se->vmsd) {
+ if (se->vmsd && se->vmsd->priority) {
return se->vmsd->priority;
}
return MIG_PRI_DEFAULT;
--
1.8.3.1
- [PATCH V3 06/42] vfio/container: register container for cpr, (continued)
- [PATCH V3 06/42] vfio/container: register container for cpr, Steve Sistare, 2025/05/12
- [PATCH V3 02/42] migration: cpr helpers, Steve Sistare, 2025/05/12
- [PATCH V3 08/42] vfio/container: export vfio_legacy_dma_map, Steve Sistare, 2025/05/12
- [PATCH V3 09/42] vfio/container: discard old DMA vaddr, Steve Sistare, 2025/05/12
- [PATCH V3 03/42] migration: lower handler priority,
Steve Sistare <=
- [PATCH V3 04/42] vfio: vfio_find_ram_discard_listener, Steve Sistare, 2025/05/12
- [PATCH V3 07/42] vfio/container: preserve descriptors, Steve Sistare, 2025/05/12
- [PATCH V3 11/42] vfio/container: mdev cpr blocker, Steve Sistare, 2025/05/12
- [PATCH V3 10/42] vfio/container: restore DMA vaddr, Steve Sistare, 2025/05/12
- [PATCH V3 12/42] vfio/container: recover from unmap-all-vaddr failure, Steve Sistare, 2025/05/12