[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [patch] align periodic vtds only if hypervisor support is present
Allow xend to work with hypervisors that don't support alignment of periodic vtds. I'm not sure if there is any interest in this, but it allows older (pre 20109:d9480422034b "hvm: Align periodic vpts") hypervisors when used with newer (>= 20109) xend. Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> Index: xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/XendDomainInfo.py 2009-02-19 17:17:48.000000000 +1100 +++ xen-unstable.hg/tools/python/xen/xend/XendDomainInfo.py 2009-02-19 17:53:50.000000000 +1100 @@ -898,15 +898,21 @@ class XendDomainInfo: else: cur_dev_sxp = self._getDeviceInfo_vscsi(req_devid, None) new_dev_sxp = ['vscsi'] + cur_mode = sxp.children(cur_dev_sxp, 'feature-host')[0] + new_dev_sxp.append(cur_mode) + for cur_dev in sxp.children(cur_dev_sxp, 'dev'): if state == xenbusState['Closing']: + if int(cur_mode[1]) == 1: + continue cur_dev_vdev = sxp.child_value(cur_dev, 'v-dev') if cur_dev_vdev == dev['v-dev']: continue new_dev_sxp.append(cur_dev) if state == xenbusState['Initialising']: - new_dev_sxp.append(sxp.child0(dev_sxp, 'dev')) + for new_dev in sxp.children(dev_sxp, 'dev'): + new_dev_sxp.append(new_dev) dev_uuid = sxp.child_value(cur_dev_sxp, 'uuid') self.info.device_update(dev_uuid, new_dev_sxp) @@ -1112,7 +1118,8 @@ class XendDomainInfo: vscsi_dev.append(['frontstate', None]) vscsi_devs[1].append(vscsi_dev) dev_num = int(sxp.child_value(vscsi_dev, 'devid')) - sxprs.append([dev_num, [vscsi_devs]]) + vscsi_mode = sxp.children(dev_info, 'feature-host')[0] + sxprs.append([dev_num, [vscsi_devs, vscsi_mode]]) elif deviceClass == 'vbd': dev = sxp.child_value(dev_info, 'dev') if 'ioemu:' in dev: @@ -2240,8 +2247,10 @@ class XendDomainInfo: # Optionally enable periodic vpt aligning vpt_align = self.info["platform"].get("vpt_align") if hvm and vpt_align is not None: - xc.hvm_set_param(self.domid, HVM_PARAM_VPT_ALIGN, - long(vpt_align)) + try: + xc.hvm_set_param(self.domid, HVM_PARAM_VPT_ALIGN, vpt_align_l) + except Exception, e: + log.warn('Hypervisor does not support HVM_PARAM_VPT_ALIGN\n') # Set maximum number of vcpus in domain xc.domain_max_vcpus(self.domid, int(self.info['VCPUs_max'])) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |