Currently, osstest, the Xen Project's automated test framework,
erroneously thinks that save/restore is supported with libvirt on ARM.
In fact, save/restore is not supported by Xen on ARM at all.
The result is that osstest then actually attempts the save/restore,
and abandons the test job as a failure. This is not desirable.
In these two patches I try to fix the feature detection to get this
right. I'd appreciate advice about whether I have done the right
thing.
My code is based partly on empirical observation of the output of
`virsh capabilities' on x86 and ARM. (See below.)
Thanks,
Ian.
From baroque0, x86.
As left by
101253.test-amd64-amd64-libvirt-pair; osstest "branch" osstest
<capabilities>
<host>
<cpu>
<arch>x86_64</arch>
<features>
<pae/>
</features>
<model>Haswell-noTSX</model>
<topology sockets='1' cores='4' threads='2'/>
<feature name='vme'/>
<feature name='ds'/>
<feature name='acpi'/>
<feature name='ht'/>
<feature name='tm'/>
<feature name='pbe'/>
<feature name='dtes64'/>
<feature name='monitor'/>
<feature name='ds_cpl'/>
<feature name='vmx'/>
<feature name='smx'/>
<feature name='est'/>
<feature name='tm2'/>
<feature name='xtpr'/>
<feature name='pdcm'/>
<feature name='f16c'/>
<feature name='rdrand'/>
<feature name='tsc_adjust'/>
<feature name='xsaveopt'/>
<feature name='pdpe1gb'/>
<feature name='abm'/>
<feature name='invtsc'/>
</cpu>
<power_management/>
<migration_features>
<live/>
</migration_features>
<netprefix>vif</netprefix>
<topology>
<cells num='1'>
<cell id='0'>
<memory unit='KiB'>9699328</memory>
<cpus num='8'>
<cpu id='0' socket_id='0' core_id='0'
siblings='0-1'/>
<cpu id='1' socket_id='0' core_id='0'
siblings='0-1'/>
<cpu id='2' socket_id='0' core_id='1'
siblings='2-3'/>
<cpu id='3' socket_id='0' core_id='1'
siblings='2-3'/>
<cpu id='4' socket_id='0' core_id='2'
siblings='4-5'/>
<cpu id='5' socket_id='0' core_id='2'
siblings='4-5'/>
<cpu id='6' socket_id='0' core_id='3'
siblings='6-7'/>
<cpu id='7' socket_id='0' core_id='3'
siblings='6-7'/>
</cpus>
</cell>
</cells>
</topology>
</host>
<guest>
<os_type>xen</os_type>
<arch name='x86_64'>
<wordsize>64</wordsize>
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
<machine>xenpv</machine>
<domain type='xen'/>
</arch>
</guest>
<guest>
<os_type>xen</os_type>
<arch name='i686'>
<wordsize>32</wordsize>
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
<machine>xenpv</machine>
<domain type='xen'/>
</arch>
<features>
<pae/>
</features>
</guest>
<guest>
<os_type>hvm</os_type>
<arch name='i686'>
<wordsize>32</wordsize>
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<machine>xenfv</machine>
<domain type='xen'/>
</arch>
<features>
<pae/>
<nonpae/>
<acpi default='on' toggle='yes'/>
<apic default='on' toggle='no'/>
<hap default='on' toggle='yes'/>
</features>
</guest>
<guest>
<os_type>hvm</os_type>
<arch name='x86_64'>
<wordsize>64</wordsize>
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<machine>xenfv</machine>
<domain type='xen'/>
</arch>
<features>
<acpi default='on' toggle='yes'/>
<apic default='on' toggle='no'/>
<hap default='on' toggle='yes'/>
</features>
</guest>
</capabilities>
From arndale-lakeside, ARM.
As left by 101251 |
test-armhf-armhf-libvirt; osstest "branch" qemu-mainline
<capabilities>
<host>
<cpu>
<arch>armv7l</arch>
</cpu>
<power_management/>
<netprefix>vif</netprefix>
<topology>
<cells num='1'>
<cell id='0'>
<memory unit='KiB'>2097152</memory>
<cpus num='2'>
<cpu id='0' socket_id='0' core_id='0'
siblings='0-1'/>
<cpu id='1' socket_id='0' core_id='0'
siblings='0-1'/>
</cpus>
</cell>
</cells>
</topology>
</host>
<guest>
<os_type>xen</os_type>
<arch name='armv7l'>
<wordsize>32</wordsize>
<emulator>/usr/lib/xen/bin/qemu-system-i386</emulator>
<machine>xenpv</machine>
<domain type='xen'/>
</arch>
</guest>
</capabilities>