diff mbox series

migration: failover: emit a warning when the card is not fully unplugged

Message ID 20210701131458.112036-1-lvivier@redhat.com
State New
Headers show
Series migration: failover: emit a warning when the card is not fully unplugged | expand

Commit Message

Laurent Vivier July 1, 2021, 1:14 p.m. UTC
When the migration fails or is canceled we wait the end of the unplug
operation to be able to plug it back. But if the unplug operation
is never finished we stop to wait and QEMU emits a warning to inform
the user.

Based-on: 20210629155007.629086-1-lvivier@redhat.com
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
---
 migration/migration.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Philippe Mathieu-Daudé July 1, 2021, 4:11 p.m. UTC | #1
On 7/1/21 3:14 PM, Laurent Vivier wrote:
> When the migration fails or is canceled we wait the end of the unplug
> operation to be able to plug it back. But if the unplug operation
> is never finished we stop to wait and QEMU emits a warning to inform
> the user.
> 
> Based-on: 20210629155007.629086-1-lvivier@redhat.com

FYI this ^ tag ...

> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---

... goes here ;)

>  migration/migration.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/migration/migration.c b/migration/migration.c
> index 3b06d43a7f42..e065c62e5189 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -3689,6 +3689,10 @@ static void qemu_savevm_wait_unplug(MigrationState *s, int old_state,
>              while (timeout-- && qemu_savevm_state_guest_unplug_pending()) {
>                  qemu_sem_timedwait(&s->wait_unplug_sem, 250);
>              }
> +            if (qemu_savevm_state_guest_unplug_pending()) {
> +                warn_report("migration: partially unplugged device on "
> +                            "failure");
> +            }
>          }
>  
>          migrate_set_state(&s->state, MIGRATION_STATUS_WAIT_UNPLUG, new_state);
>
Juan Quintela July 1, 2021, 5:59 p.m. UTC | #2
Laurent Vivier <lvivier@redhat.com> wrote:
> When the migration fails or is canceled we wait the end of the unplug
> operation to be able to plug it back. But if the unplug operation
> is never finished we stop to wait and QEMU emits a warning to inform
> the user.
>
> Based-on: 20210629155007.629086-1-lvivier@redhat.com
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>
Dr. David Alan Gilbert July 13, 2021, 10:58 a.m. UTC | #3
* Laurent Vivier (lvivier@redhat.com) wrote:
> When the migration fails or is canceled we wait the end of the unplug
> operation to be able to plug it back. But if the unplug operation
> is never finished we stop to wait and QEMU emits a warning to inform
> the user.
> 
> Based-on: 20210629155007.629086-1-lvivier@redhat.com
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>

Queued

> ---
>  migration/migration.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/migration/migration.c b/migration/migration.c
> index 3b06d43a7f42..e065c62e5189 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -3689,6 +3689,10 @@ static void qemu_savevm_wait_unplug(MigrationState *s, int old_state,
>              while (timeout-- && qemu_savevm_state_guest_unplug_pending()) {
>                  qemu_sem_timedwait(&s->wait_unplug_sem, 250);
>              }
> +            if (qemu_savevm_state_guest_unplug_pending()) {
> +                warn_report("migration: partially unplugged device on "
> +                            "failure");
> +            }
>          }
>  
>          migrate_set_state(&s->state, MIGRATION_STATUS_WAIT_UNPLUG, new_state);
> -- 
> 2.31.1
> 
>
diff mbox series

Patch

diff --git a/migration/migration.c b/migration/migration.c
index 3b06d43a7f42..e065c62e5189 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -3689,6 +3689,10 @@  static void qemu_savevm_wait_unplug(MigrationState *s, int old_state,
             while (timeout-- && qemu_savevm_state_guest_unplug_pending()) {
                 qemu_sem_timedwait(&s->wait_unplug_sem, 250);
             }
+            if (qemu_savevm_state_guest_unplug_pending()) {
+                warn_report("migration: partially unplugged device on "
+                            "failure");
+            }
         }
 
         migrate_set_state(&s->state, MIGRATION_STATUS_WAIT_UNPLUG, new_state);