[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 03/15] spapr: Explain purpose of ->fwnmi_migration_blocker more cl
From: |
Markus Armbruster |
Subject: |
[PULL 03/15] spapr: Explain purpose of ->fwnmi_migration_blocker more clearly |
Date: |
Fri, 27 Aug 2021 06:50:32 +0200 |
spapr_mce_req_event() makes an effort to prevent migration from
degrading the reporting of FWNMIs. It adds a migration blocker when
it receives one, and deletes it when it's done handling it. This is a
best effort.
Commit 2500fb423a "migration: Include migration support for machine
check handling" tried to explain this in a comment. Rewrite the
comment for clarity, and reposition it to make it clear it applies to
all failure modes, not just "migration already in progress".
Cc: David Gibson <david@gibson.dropbear.id.au>
Cc: Aravinda Prasad <arawinda.p@gmail.com>
Cc: Ganesh Goudar <ganeshgr@linux.ibm.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20210720125408.387910-4-armbru@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/ppc/spapr_events.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index 690533cbdc..630e86282c 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -911,16 +911,17 @@ void spapr_mce_req_event(PowerPCCPU *cpu, bool recovered)
}
}
+ /*
+ * Try to block migration while FWNMI is being handled, so the
+ * machine check handler runs where the information passed to it
+ * actually makes sense. This shouldn't actually block migration,
+ * only delay it slightly, assuming migration is retried. If the
+ * attempt to block fails, carry on. Unfortunately, it always
+ * fails when running with -only-migrate. A proper interface to
+ * delay migration completion for a bit could avoid that.
+ */
ret = migrate_add_blocker(spapr->fwnmi_migration_blocker, NULL);
if (ret == -EBUSY) {
- /*
- * We don't want to abort so we let the migration to continue.
- * In a rare case, the machine check handler will run on the target.
- * Though this is not preferable, it is better than aborting
- * the migration or killing the VM. It is okay to call
- * migrate_del_blocker on a blocker that was not added (which the
- * nmi-interlock handler would do when it's called after this).
- */
warn_report("Received a fwnmi while migration was in progress");
}
--
2.31.1
- [PULL 00/15] Error reporting patches for 2021-08-26, Markus Armbruster, 2021/08/27
- [PULL 06/15] i386: Never free migration blocker objects instead of sometimes, Markus Armbruster, 2021/08/27
- [PULL 03/15] spapr: Explain purpose of ->fwnmi_migration_blocker more clearly,
Markus Armbruster <=
- [PULL 10/15] migration: Handle migration_incoming_setup() errors consistently, Markus Armbruster, 2021/08/27
- [PULL 09/15] migration: Unify failure check for migrate_add_blocker(), Markus Armbruster, 2021/08/27
- [PULL 15/15] vl: Clean up -smp error handling, Markus Armbruster, 2021/08/27
- [PULL 02/15] spapr: Plug memory leak when we can't add a migration blocker, Markus Armbruster, 2021/08/27
- [PULL 11/15] microvm: Drop dead error handling in microvm_machine_state_init(), Markus Armbruster, 2021/08/27
- [PULL 05/15] vhost-scsi: Plug memory leak on migrate_add_blocker() failure, Markus Armbruster, 2021/08/27
- [PULL 04/15] multi-process: Fix pci_proxy_dev_realize() error handling, Markus Armbruster, 2021/08/27
- [PULL 07/15] vfio: Avoid error_propagate() after migrate_add_blocker(), Markus Armbruster, 2021/08/27
- [PULL 08/15] whpx nvmm: Drop useless migrate_del_blocker(), Markus Armbruster, 2021/08/27