On 16/04/2015 23:24, Stefan Berger wrote: > On 04/16/2015 04:53 PM, Mark Cave-Ayland wrote: >> On 16/04/15 20:49, Stefan Berger wrote: >>>> Hmmmm the fix is correct in that internal MSR variables need to be >>>> updated post-restore (as noted in the message above it was the >>>> exception >>>> prefix variables that weren't updated by having MSR_EP set). >>>> >>>> Maybe on ppc64 there is another bit similar to MSR_TGPR that needs >>>> to be >>>> excluded? Alex, any thoughts? >>> I want to add that I am running QEMU for ppc64 in emulation mode on a >>> x86_64 host. The suspend/resume problem, while in SLOF, did not exist in >>> QEMU v2.2, so I anticipate that this is a regression would also be >>> visible on QEMU on kvm, though a simple test on such a machine may show >>> different... >>> >>> Removing the patch solves the problem while in SLOF. Once booting into >>> Linux suspend/resume does not work - with qemu-system-ppc64 on x86_64 >>> host. Timestamps shown by Linux actually make a jump backwards and >>> ultimately Linux hangs. >> Just to clarify the terminology here, when you say suspend/resume are >> you talking about a hardware suspend/resume or issuing a savevm/loadvm >> sequence in the QEMU monitor? Are you able to provide further detail to >> reproduce your test case? > > I am using 'virsh save' to suspend the VM, 'virsh restore' to resume it, > so I am doing this on libvirt level.
Ok, that's the equivalent of "migrate exec:cat>foo.save" and "-incoming 'exec:cat<foo.save'" Paolo > > This is the XML to just test suspend / resume while it is in SLOF. No > disk needed. > > <domain type='qemu'> > <name>ppc-test</name> > <uuid>3e17dcdb-4a22-49ed-b8f9-4df523d04bb3</uuid> > <memory unit='KiB'>1310720</memory> > <currentMemory unit='KiB'>1310720</currentMemory> > <vcpu placement='static'>1</vcpu> > <resource> > <partition>/machine</partition> > </resource> > <os> > <type arch='ppc64' machine='pseries-2.2'>hvm</type> > <boot dev='hd'/> > <boot dev='cdrom'/> > </os> > <clock offset='utc'/> > <on_poweroff>destroy</on_poweroff> > <on_reboot>restart</on_reboot> > <on_crash>restart</on_crash> > <devices> > <emulator>/usr/bin/qemu-system-ppc64</emulator> > <controller type='usb' index='0'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x01' > function='0x0'/> > </controller> > <controller type='pci' index='0' model='pci-root'/> > <input type='keyboard' bus='usb'/> > <input type='mouse' bus='usb'/> > <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> > <listen type='address' address='0.0.0.0'/> > </graphics> > <video> > <model type='vga' vram='16384' heads='1'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x05' > function='0x0'/> > </video> > <memballoon model='virtio'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x02' > function='0x0'/> > </memballoon> > </devices> > <seclabel type='dynamic' model='selinux' relabel='yes'/> > </domain> > > > Stefan > > >> >> ATB, >> >> Mark. >> > > >