From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Peter Xu <peterx@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Juan Quintela <quintela@redhat.com>,
qemu-devel@nongnu.org, Eduardo Habkost <ehabkost@redhat.com>,
Igor Mammedov <imammedo@redhat.com>
Subject: Re: [PATCH v2 4/4] migration: Check in savevm_state_handler_insert for dups
Date: Wed, 16 Oct 2019 10:14:44 +0100 [thread overview]
Message-ID: <20191016091444.GC2978@work-vm> (raw)
In-Reply-To: <20191016022933.7276-5-peterx@redhat.com>
* Peter Xu (peterx@redhat.com) wrote:
> Before finally register one SaveStateEntry, we detect for duplicated
> entries. This could be helpful to notify us asap instead of get
> silent migration failures which could be hard to diagnose.
>
> For example, this patch will generate a message like this (if without
> previous fixes on x2apic) as long as we wants to boot a VM instance
> with "-smp 200,maxcpus=288,sockets=2,cores=72,threads=2" and QEMU will
> bail out even before VM starts:
>
> savevm_state_handler_insert: Detected duplicate SaveStateEntry: id=apic, instance_id=0x0
>
> Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Right, lets see what this triggers :-)
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> migration/savevm.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/migration/savevm.c b/migration/savevm.c
> index 1e44f06d7a..83e91ddafa 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -264,6 +264,8 @@ static SaveState savevm_state = {
> .global_section_id = 0,
> };
>
> +static SaveStateEntry *find_se(const char *idstr, uint32_t instance_id);
> +
> static bool should_validate_capability(int capability)
> {
> assert(capability >= 0 && capability < MIGRATION_CAPABILITY__MAX);
> @@ -714,6 +716,18 @@ static void savevm_state_handler_insert(SaveStateEntry *nse)
>
> assert(priority <= MIG_PRI_MAX);
>
> + /*
> + * This should never happen otherwise migration will probably fail
> + * silently somewhere because we can be wrongly applying one
> + * object properties upon another one. Bail out ASAP.
> + */
> + if (find_se(nse->idstr, nse->instance_id)) {
> + error_report("%s: Detected duplicate SaveStateEntry: "
> + "id=%s, instance_id=0x%"PRIx32, __func__,
> + nse->idstr, nse->instance_id);
> + exit(EXIT_FAILURE);
> + }
> +
> QTAILQ_FOREACH(se, &savevm_state.handlers, entry) {
> if (save_state_priority(se) < priority) {
> break;
> --
> 2.21.0
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2019-10-16 9:16 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-16 2:29 [PATCH v2 0/4] apic: Fix migration breakage of >255 vcpus Peter Xu
2019-10-16 2:29 ` [PATCH v2 1/4] migration: Define VMSTATE_INSTANCE_ID_ANY Peter Xu
2019-10-16 8:43 ` Juan Quintela
2019-10-16 2:29 ` [PATCH v2 2/4] migration: Change SaveStateEntry.instance_id into uint32_t Peter Xu
2019-10-16 8:43 ` Juan Quintela
2019-10-16 2:29 ` [PATCH v2 3/4] apic: Use 32bit APIC ID for migration instance ID Peter Xu
2019-10-16 2:42 ` Eduardo Habkost
2019-10-16 8:44 ` Juan Quintela
2019-10-16 2:29 ` [PATCH v2 4/4] migration: Check in savevm_state_handler_insert for dups Peter Xu
2019-10-16 9:14 ` Dr. David Alan Gilbert [this message]
2019-10-16 10:08 ` Juan Quintela
2020-01-10 16:35 ` Juan Quintela
2019-10-16 14:40 ` [PATCH v2 0/4] apic: Fix migration breakage of >255 vcpus Eduardo Habkost
2019-10-19 3:41 ` Peter Xu
2019-10-23 7:57 ` Peter Xu
2019-10-23 8:17 ` Kevin Wolf
2019-10-24 17:49 ` John Snow
2019-10-25 0:00 ` Peter Xu
2019-10-23 10:39 ` Peter Xu
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=20191016091444.GC2978@work-vm \
--to=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).