[libvirt] [OSSTEST PATCH 0/2] libvirt: Fix save/restore capability check on ARM

Ian Jackson ian.jackson at eu.citrix.com
Tue Oct 4 17:02:25 UTC 2016


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>





More information about the libvir-list mailing list