
There are know issues related to vhost feature and Little Endian distros. This patch sets driver name='qemu', disabling the vhost feature when libvirt starts a virtual machine. LE Distros: Ubuntu >= 14.04 and SLES >= 12. Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo@linux.vnet.ibm.com> --- src/kimchi/vmtemplate.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py index 8d5217a..4b0f398 100644 --- a/src/kimchi/vmtemplate.py +++ b/src/kimchi/vmtemplate.py @@ -23,6 +23,9 @@ import socket import urlparse +from distutils.version import LooseVersion + + from kimchi import osinfo from kimchi.exception import InvalidParameter, IsoFormatError from kimchi.isoinfo import IsoImage @@ -265,15 +268,27 @@ drive=drive-%(bus)s0-1-0,id=%(bus)s0-1-0'/> ret.append(info) return ret + def _disable_vhost(self): + # Hack to disable vhost feature in Ubuntu LE and SLES LE (PPC) + driver = "" + if self.info['arch'] == 'ppc64' and \ + ((self.info['os_distro'] == 'ubuntu' and LooseVersion( + self.info['os_version']) >= LooseVersion('14.04')) or + (self.info['os_distro'] == 'sles' and LooseVersion( + self.info['os_version']) >= LooseVersion('12'))): + driver = " <driver name='qemu'/>\n " + return driver + def _get_networks_xml(self): network = """ <interface type='network'> <source network='%(network)s'/> <model type='%(nic_model)s'/> - </interface> + %(driver)s</interface> """ networks = "" - net_info = {"nic_model": self.info['nic_model']} + net_info = {"nic_model": self.info['nic_model'], + "driver": self._disable_vhost()} for nw in self.info['networks']: net_info['network'] = nw networks += network % net_info -- 1.9.3