From: Juan Quintela <quintela@redhat.com>
To: Leonardo Bras <leobras@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Peter Xu <peterx@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [PATCH v1 4/4] migration/multifd: Move load_cleanup inside incoming_state_destroy
Date: Fri, 10 Feb 2023 13:51:27 +0100 [thread overview]
Message-ID: <87bkm1heeo.fsf@secure.mitica> (raw)
In-Reply-To: <20230210063630.532185-4-leobras@redhat.com> (Leonardo Bras's message of "Fri, 10 Feb 2023 03:36:31 -0300")
Leonardo Bras <leobras@redhat.com> wrote:
> Currently running migration_incoming_state_destroy() without first running
> multifd_load_cleanup() will cause a yank error:
>
> qemu-system-x86_64: ../util/yank.c:107: yank_unregister_instance:
> Assertion `QLIST_EMPTY(&entry->yankfns)' failed.
> (core dumped)
>
> The above error happens in the target host, when multifd is being used
> for precopy, and then postcopy is triggered and the migration finishes.
> This will crash the VM in the target host.
>
> To avoid that, move multifd_load_cleanup() inside
> migration_incoming_state_destroy(), so that the load cleanup becomes part
> of the incoming state destroying process.
>
> Running multifd_load_cleanup() twice can become an issue, though, but the
> only scenario it could be ran twice is on process_incoming_migration_bh().
> So removing this extra call is necessary.
>
> On the other hand, this multifd_load_cleanup() call happens way before the
> migration_incoming_state_destroy() and having this happening before
> dirty_bitmap_mig_before_vm_start() and vm_start() may be a need.
>
> So introduce a new function multifd_load_shutdown() that will mainly stop
> all multifd threads and close their QIOChannels. Then use this function
> instead of multifd_load_cleanup() to make sure nothing else is received
> before dirty_bitmap_mig_before_vm_start().
>
> Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
next prev parent reply other threads:[~2023-02-10 12:51 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-10 6:36 [PATCH v1 1/4] migration/multifd: Change multifd_load_cleanup() signature and usage Leonardo Bras
2023-02-10 6:36 ` [PATCH v1 2/4] migration/multifd: Remove unnecessary assignment on multifd_load_cleanup() Leonardo Bras
2023-02-10 12:48 ` Juan Quintela
2023-02-10 17:19 ` Peter Xu
2023-02-10 6:36 ` [PATCH v1 3/4] migration/multifd: Join all multifd threads in order to avoid leaks Leonardo Bras
2023-02-10 12:49 ` Juan Quintela
2023-02-10 17:21 ` Peter Xu
2023-02-10 6:36 ` [PATCH v1 4/4] migration/multifd: Move load_cleanup inside incoming_state_destroy Leonardo Bras
2023-02-10 6:40 ` Leonardo Brás
2023-02-10 12:51 ` Juan Quintela [this message]
2023-02-10 12:46 ` [PATCH v1 1/4] migration/multifd: Change multifd_load_cleanup() signature and usage Juan Quintela
2023-02-10 17:18 ` Peter Xu
-- strict thread matches above, loose matches on Subject: below --
2023-02-10 6:31 Leonardo Bras
2023-02-10 6:31 ` [PATCH v1 4/4] migration/multifd: Move load_cleanup inside incoming_state_destroy Leonardo Bras
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=87bkm1heeo.fsf@secure.mitica \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=leobras@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.