From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-devel@nongnu.org, f4bug@amsat.org, aurelien@aurel32.net,
jiaxun.yang@flygoat.com, peter.maydell@linaro.org,
ani@anisinha.ca, mst@redhat.com
Subject: Re: [PATCH for-7.1] hw/mips/malta: turn off x86 specific features of PIIX4_PM
Date: Thu, 28 Jul 2022 16:09:46 +0100 [thread overview]
Message-ID: <YuKmuvgqMQtTXVjX@work-vm> (raw)
In-Reply-To: <20220728165411.5701befb@redhat.com>
* Igor Mammedov (imammedo@redhat.com) wrote:
> On Thu, 28 Jul 2022 15:44:20 +0100
> "Dr. David Alan Gilbert" <dgilbert@redhat.com> wrote:
>
> > * Igor Mammedov (imammedo@redhat.com) wrote:
> > > QEMU crashes trying to save VMSTATE when only MIPS target are compiled in
> > > $ qemu-system-mips -monitor stdio
> > > (qemu) migrate "exec:gzip -c > STATEFILE.gz"
> > > Segmentation fault (core dumped)
> > >
> > > It happens due to PIIX4_PM trying to parse hotplug vmstate structures
> > > which are valid only for x86 and not for MIPS (as it requires ACPI
> > > tables support which is not existent for ithe later)
> > >
> > > Issue was probably exposed by trying to cleanup/compile out unused
> > > ACPI bits from MIPS target (but forgetting about migration bits).
> > >
> > > Disable compiled out features using compat properties as the least
> > > risky way to deal with issue.
> >
> > Isn't the problem partially due to a 'stub' vmsd which isn't terminated?
>
> Not sure what "'stub' vmsd" is, can you explain?
In hw/acpi/acpi-pci-hotplug-stub.c there is :
const VMStateDescription vmstate_acpi_pcihp_pci_status;
this seg happens when the migration code walks into that - this should
always get populated with some of the minimal fields, in particular the
.name and .fields array terminated with VMSTATE_END_OF_LIST().
Dave
> >
> > Dave
> >
> > > Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> > > ---
> > > PS:
> > > another approach could be setting defaults to disabled state and
> > > enabling them using compat props on PC machines (which is more
> > > code to deal with => more risky) or continue with PIIX4_PM
> > > refactoring to split x86-shism out (which I'm not really
> > > interested in due to risk of regressions for not much of
> > > benefit)
> > > ---
> > > hw/mips/malta.c | 9 +++++++++
> > > 1 file changed, 9 insertions(+)
> > >
> > > diff --git a/hw/mips/malta.c b/hw/mips/malta.c
> > > index 7a0ec513b0..0e932988e0 100644
> > > --- a/hw/mips/malta.c
> > > +++ b/hw/mips/malta.c
> > > @@ -1442,6 +1442,14 @@ static const TypeInfo mips_malta_device = {
> > > .instance_init = mips_malta_instance_init,
> > > };
> > >
> > > +GlobalProperty malta_compat[] = {
> > > + { "PIIX4_PM", "memory-hotplug-support", "off" },
> > > + { "PIIX4_PM", "acpi-pci-hotplug-with-bridge-support", "off" },
> > > + { "PIIX4_PM", "acpi-root-pci-hotplug", "off" },
> > > + { "PIIX4_PM", "x-not-migrate-acpi-index", "true" },
> > > +};
> > > +const size_t malta_compat_len = G_N_ELEMENTS(malta_compat);
> > > +
> > > static void mips_malta_machine_init(MachineClass *mc)
> > > {
> > > mc->desc = "MIPS Malta Core LV";
> > > @@ -1455,6 +1463,7 @@ static void mips_malta_machine_init(MachineClass *mc)
> > > mc->default_cpu_type = MIPS_CPU_TYPE_NAME("24Kf");
> > > #endif
> > > mc->default_ram_id = "mips_malta.ram";
> > > + compat_props_add(mc->compat_props, malta_compat, malta_compat_len);
> > > }
> > >
> > > DEFINE_MACHINE("malta", mips_malta_machine_init)
> > > --
> > > 2.31.1
> > >
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2022-07-28 15:16 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-28 11:50 [PATCH for-7.1] hw/mips/malta: turn off x86 specific features of PIIX4_PM Igor Mammedov
2022-07-28 12:29 ` Peter Maydell
2022-07-28 13:16 ` Igor Mammedov
2022-08-02 6:34 ` Philippe Mathieu-Daudé via
2022-08-03 17:26 ` Bernhard Beschow
2022-08-03 18:00 ` Peter Maydell
2022-08-04 21:32 ` BB
2022-08-08 12:15 ` Igor Mammedov
2022-08-08 17:57 ` BB
2022-08-08 18:02 ` Peter Maydell
2022-08-08 21:28 ` BB
2022-08-09 7:27 ` Igor Mammedov
2022-07-28 18:50 ` Ani Sinha
2022-07-28 14:44 ` Dr. David Alan Gilbert
2022-07-28 14:54 ` Igor Mammedov
2022-07-28 15:09 ` Dr. David Alan Gilbert [this message]
2022-07-28 15:12 ` Peter Maydell
2022-07-29 9:57 ` Igor Mammedov
2022-07-29 10:17 ` Peter Maydell
2022-08-01 9:17 ` Dr. David Alan Gilbert
2022-08-01 9:43 ` Peter Maydell
2022-07-28 15:04 ` Peter Maydell
2022-07-28 18:48 ` Ani Sinha
2022-07-29 8:09 ` Igor Mammedov
2022-08-03 22:00 ` Michael S. Tsirkin
2022-08-04 6:44 ` Ani Sinha
2022-08-08 21:24 ` Philippe Mathieu-Daudé via
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=YuKmuvgqMQtTXVjX@work-vm \
--to=dgilbert@redhat.com \
--cc=ani@anisinha.ca \
--cc=aurelien@aurel32.net \
--cc=f4bug@amsat.org \
--cc=imammedo@redhat.com \
--cc=jiaxun.yang@flygoat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--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.