From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Halil Pasic <pasic@linux.vnet.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 06/10] virtio-ccw: use vmstate way for config migration
Date: Mon, 8 May 2017 19:42:51 +0100 [thread overview]
Message-ID: <20170508184251.GM2120@work-vm> (raw)
In-Reply-To: <b69e0df0-120f-6634-d7ff-4bea9ccb4e31@linux.vnet.ibm.com>
* Halil Pasic (pasic@linux.vnet.ibm.com) wrote:
>
>
> On 05/08/2017 07:59 PM, Dr. David Alan Gilbert wrote:
> >>>> const VMStateDescription vmstate_virtio_ccw_dev = {
> >>>> .name = "s390_virtio_ccw_dev",
> >>>> .version_id = 1,
> >>>> @@ -67,6 +93,14 @@ const VMStateDescription vmstate_virtio_ccw_dev = {
> >>>> VMSTATE_PTR_TO_IND_ADDR(indicators, VirtioCcwDevice),
> >>>> VMSTATE_PTR_TO_IND_ADDR(indicators2, VirtioCcwDevice),
> >>>> VMSTATE_PTR_TO_IND_ADDR(summary_indicator, VirtioCcwDevice),
> >>>> + {
> >>>> + /*
> >>>> + * Ugly hack because VirtIODevice does not migrate itself.
> >>>> + * This also makes legacy via vmstate_save_state possible.
> >>>> + */
> >>>> + .name = "virtio/config_vector",
> >>>> + .info = &vmstate_info_config_vector,
> >>>> + },
> >>> I'm a bit confused - isn't just this bit the bit going
> >>> through the vdev->load_config hook?
> >>>
> >> Exactly! If you examine the part underscored with ============== in
> >> virtio_ccw_(load|save)_config (that is what is behind vdev->load_config)
> >> you should see that we use vmstate_virtio_ccw_dev (that is this
> >> VMStateDescription to implement these function.
> >>
> >> Actually virtio_ccw_(load|save)_config won't do anything after patch 9
> >> and for new machines since the VirtIOCcwDevice is going to migrate
> >> itself via DeviceClass.vmsd like other "normal" devices, and we fall
> >> back to the VirtIO specific callbacks only in "legacy mode".
> >>
> >> I hope this helps!
> > Hmm, still confused!
> > Why are you changing a Virtio device not to use the same migration
> > oddities as all the other virtio devices?
> >
> > I was assuming we'd have to change the virtio core code to
> > solve that for all virtio devices.
> >
>
> You can ask difficult questions ;). First I'm not aware of any
> ongoing effort to solve this for all virtio devices by changing
> the core, and probably breaking compatibility for all devices
> (in a sense I break migration compatibility for all virtio-ccw
> devices). To be honest, I have considered that move unlikely,
> but the possibility is one of my reasons for seeking an upstream
> discussion and having You and Michael on cc.
Well I have been trying to improve it, but that code is particularly
nasty; and I don't want to break compatibility. I had some ideas,
for example I was thinking of changing the vdev->load_config to
a VMState* and then calling a vmstate_load_state(f, vdc->config,...
from virtio_load - but there's some challenging casting and hackery
there.
>
> Why not use virtio oddities? Because they are oddities. I have
> figured, it's a good idea to separate the migration of the
> proxy form the rest: we have two QEMU Device objects and it
> should be good practice, that these are migrating themselves via
> DeviceClass.vmsd. That's what I get with this patch set,
> for new machine versions (since we can not fix the past), and
> with the notable difference of config_vector, because it is
> defined as a common infrastructure (struct VirtIODevice) but
> ain't migrated as a common virtio infrastructure.
Have you got a bit of a description of your classes/structure - it's
a little hard to get my head around.
> Would you suggest to rather keep the oddities? Should I expect
> to see a generic solution to the problem sometime soon?
Not soon I fear; virtio_load is just too hairy.
Dave
> Halil
>
> > Dave
> >
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-05-08 18:43 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-05 17:34 [Qemu-devel] [PATCH 00/10] migration: s390x css migration Halil Pasic
2017-05-05 17:34 ` [Qemu-devel] [PATCH 01/10] s390x: add helper get_machine_class Halil Pasic
2017-05-05 17:34 ` [Qemu-devel] [PATCH 02/10] s390x: add css_migration_enabled to machine class Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 03/10] s390x/css: add vmstate entities for css Halil Pasic
2017-05-08 16:45 ` Dr. David Alan Gilbert
2017-05-09 12:00 ` Halil Pasic
2017-05-15 18:01 ` Dr. David Alan Gilbert
2017-05-18 14:15 ` Halil Pasic
2017-05-19 14:55 ` Dr. David Alan Gilbert
2017-05-19 15:08 ` Halil Pasic
2017-05-19 16:00 ` Halil Pasic
2017-05-19 17:43 ` Dr. David Alan Gilbert
2017-05-19 16:33 ` Halil Pasic
2017-05-19 17:47 ` Dr. David Alan Gilbert
2017-05-19 18:04 ` Halil Pasic
2017-05-09 12:20 ` Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 04/10] s390x/css: add vmstate macro for CcwDevice Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 05/10] virtio-ccw: add vmstate entities for VirtioCcwDevice Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 06/10] virtio-ccw: use vmstate way for config migration Halil Pasic
2017-05-08 16:55 ` Dr. David Alan Gilbert
2017-05-09 17:05 ` Halil Pasic
2017-05-10 10:31 ` Dr. David Alan Gilbert
2017-05-10 10:38 ` Cornelia Huck
2017-05-08 17:36 ` Dr. David Alan Gilbert
2017-05-08 17:53 ` Halil Pasic
2017-05-08 17:59 ` Dr. David Alan Gilbert
2017-05-08 18:27 ` Halil Pasic
2017-05-08 18:42 ` Dr. David Alan Gilbert [this message]
2017-05-10 11:52 ` Halil Pasic
2017-05-15 19:07 ` Dr. David Alan Gilbert
2017-05-16 22:05 ` Halil Pasic
2017-05-19 17:28 ` Dr. David Alan Gilbert
2017-05-19 18:02 ` Halil Pasic
2017-05-19 18:38 ` Dr. David Alan Gilbert
2017-05-05 17:35 ` [Qemu-devel] [PATCH 07/10] s390x/css: remove unused subch_dev_(load|save) Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 08/10] s390x/css: add ORB to SubchDev Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 09/10] s390x/css: turn on channel subsystem migration Halil Pasic
2017-05-08 17:27 ` Dr. David Alan Gilbert
2017-05-08 18:03 ` Halil Pasic
2017-05-08 18:37 ` Dr. David Alan Gilbert
2017-05-09 17:27 ` Halil Pasic
2017-05-05 17:35 ` [Qemu-devel] [PATCH 10/10] s390x/css: use SubchDev.orb Halil Pasic
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=20170508184251.GM2120@work-vm \
--to=dgilbert@redhat.com \
--cc=cornelia.huck@de.ibm.com \
--cc=mst@redhat.com \
--cc=pasic@linux.vnet.ibm.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.