From: Cornelia Huck <cohuck@redhat.com>
To: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Cc: Halil Pasic <pasic@linux.vnet.ibm.com>,
Boris Fiuczynski <fiuczy@linux.vnet.ibm.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
Shalini Chellathurai Saroja <shalini@linux.vnet.ibm.com>,
qemu-devel@nongnu.org, qemu-s390x@nongnu.org
Subject: Re: [Qemu-devel] [RFC PATCH v2 1/1] s390x/css: unrestrict cssids
Date: Wed, 29 Nov 2017 12:47:47 +0100 [thread overview]
Message-ID: <20171129124747.63c1359b.cohuck@redhat.com> (raw)
In-Reply-To: <20171129081735.GR5859@bjsdjshi@linux.vnet.ibm.com>
On Wed, 29 Nov 2017 16:17:35 +0800
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> * Halil Pasic <pasic@linux.vnet.ibm.com> [2017-11-28 14:07:58 +0100]:
>
> [...]
> >
> > The auto-generated bus ids are affected by both changes. We hope to not
> > encounter any auto-generated bus ids in production as Libvirt is always
> > explicit about the bus id. Since 8ed179c937 ("s390x/css: catch section
> > mismatch on load", 2017-05-18) the worst that can happen because the same
> > device ended up having a different bus id is a cleanly failed migration.
> > I find it hard to reason about the impact of changed auto-generated bus
> > ids on migration for command line users as I don't know which rules is
> > such an user supposed to follow.
> For this paragraph, Halil pointed to me a case that he is thinking of.
> 1. VM configuration with 3 devices:
> -device virtio (e.g. virtio-blk-ccw,id=disk0)
> -device vfio-ccw (e.g. id=vfio0)
> -device virtio (e.g. virtio-rng-ccw,id=rng0)
> 2. Start the vm.
> 3. device_del vfio0
> 4. migrate "exec:gzip -c > /tmp/tmp_vmstate.gz"
> 5. modify cmd line from step 1 by removing the vfio0 device, and adding:
> -incoming "exec:gzip -c -d /tmp/tmp_vmstate.gz"
>
> Let me list my test results here for everybody's reference.
>
> W/o this patch
> ==============
>
> ------------+---------------+-------------
> | squashing off | squashing on
> ------------+---------------+-------------
> auto id | F | F
> ------------+---------------+-------------
> explicit id | F | S
> ------------+---------------+-------------
>
> T1. squashing off + auto id
> qemu-system-s390x: vmstate: get_nullptr expected VMS_NULLPTR_MARKER
> qemu-system-s390x: Failed to load s390_css:css
> qemu-system-s390x: error while loading state for instance 0x0 of device 's390_css'
> qemu-system-s390x: load of migration failed: Invalid argument
> [Fail due to css mismatch - there is no css 0 in the new vm.]
>
> T2. squashing off + explicit given id
> qemu-system-s390x: vmstate: get_nullptr expected VMS_NULLPTR_MARKER
> qemu-system-s390x: Failed to load s390_css:css
> qemu-system-s390x: error while loading state for instance 0x0 of device 's390_css'
> qemu-system-s390x: load of migration failed: Invalid argument
> [Fail due to css mismatch - there is no css 0 in the new vm.]
Hmm... so should we even try to migrate an empty css 0? It only exists
because we have created a device that we had to detach anyway because
it was non-migrateable...
[Probably no easy way to deal with this, though.]
>
> T3. squashing on + auto id
> qemu-system-s390x: Unknown savevm section or instance '/00.0.0003/virtio-rng' 0
> qemu-system-s390x: load of migration failed: Invalid argument
> [Fail due to busid mismatch.]
>
> T4. squashing on + explicit given id
> Succeed.
>
> With this patch
> ===============
>
> ------------+---------------+-------------
> | squashing off | squashing on
> ------------+---------------+-------------
> auto id | F | F
> ------------+---------------+-------------
> explicit id | S' | S
> ------------+---------------+-------------
>
> T5. squashing off + auto id
> qemu-system-s390x: Unknown savevm section or instance '/fe.0.0003/virtio-rng' 0
> qemu-system-s390x: load of migration failed: Invalid argument
> [Fail due to busid mismatch.]
>
> T6. squashing off + explicit given id
> qemu-system-s390x: vmstate: get_nullptr expected VMS_NULLPTR_MARKER
> qemu-system-s390x: Failed to load s390_css:css
> qemu-system-s390x: error while loading state for instance 0x0 of device 's390_css'
> qemu-system-s390x: load of migration failed: Invalid argument
> [Setting vfio-ccw.devno=non-fe.x.xxxx. (same as T1)
> Fail due to css mismatch - there is no css 0 in the new vm.]
>
> Succeed.
> [Setting vfio-ccw.devno=fe.x.xxxx.]
Don't you need to attach the vfio-ccw device later anyway? You have to
detach it from the source before you migrate, and I'd expect it to be
symmetric.
>
> T7. squashing on + auto id
> qemu-system-s390x: Unknown savevm section or instance '/00.0.0003/virtio-rng' 0
> qemu-system-s390x: load of migration failed: Invalid argument
> [Fail due to busid mismatch.]
>
> T8. squashing on + explicit given id
> Succeed.
>
>
> Notice:
> The differences of the test results between w and w/o this patch are in
> the "squashing off" cases. I think these are things that we can accept.
Yes, I think that makes sense. If you want reliable migration, you need
to be specific with your ids. I'd just don't want us to break things
explicitly.
next prev parent reply other threads:[~2017-11-29 11:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-28 13:07 [Qemu-devel] [RFC PATCH v2 1/1] s390x/css: unrestrict cssids Halil Pasic
2017-11-29 8:17 ` Dong Jia Shi
2017-11-29 8:20 ` Dong Jia Shi
2017-11-29 11:47 ` Cornelia Huck [this message]
2017-11-29 16:30 ` Halil Pasic
2017-11-30 3:16 ` Dong Jia Shi
2017-11-30 3:29 ` Dong Jia Shi
2017-11-29 12:37 ` Cornelia Huck
2017-11-29 16:25 ` Halil Pasic
2017-11-29 17:29 ` Cornelia Huck
2017-11-30 12:32 ` Halil Pasic
2017-11-30 13:32 ` Cornelia Huck
2017-12-01 14:38 ` 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=20171129124747.63c1359b.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=bjsdjshi@linux.vnet.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=fiuczy@linux.vnet.ibm.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=shalini@linux.vnet.ibm.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).