From: Ken ICHIKAWA <ichikawa.ken@xxxxxxxxxxxxxx> With this patch, users can use cpu host-passthrough like this: virt-install --cpu host-passthrough ... Signed-off-by: Ken ICHIKAWA <ichikawa.ken@xxxxxxxxxxxxxx> Signed-off-by: Hu Tao <hutao@xxxxxxxxxxxxxx> --- Cole, v2 is rebased on top of latest virt-manager. Please review. Regards, Hu Tao virtinst/CPU.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/virtinst/CPU.py b/virtinst/CPU.py index 6ada5bc..c1c47e8 100644 --- a/virtinst/CPU.py +++ b/virtinst/CPU.py @@ -81,6 +81,7 @@ class CPU(XMLBuilderDomain.XMLBuilderDomain): self._model = None self._match = None self._vendor = None + self._mode = None self._features = [] self._sockets = None @@ -130,6 +131,8 @@ class CPU(XMLBuilderDomain.XMLBuilderDomain): def _get_model(self): return self._model def _set_model(self, val): + if val: + self.mode = "custom" if val and not self.match: self.match = "exact" self._model = val @@ -150,6 +153,13 @@ class CPU(XMLBuilderDomain.XMLBuilderDomain): vendor = _xml_property(_get_vendor, _set_vendor, xpath="./cpu/vendor") + def _get_mode(self): + return self._mode + def _set_mode(self, val): + self._mode = val + mode = _xml_property(_get_mode, _set_mode, + xpath="./cpu/@mode") + # Topology properties def _get_sockets(self): return self._sockets @@ -184,6 +194,7 @@ class CPU(XMLBuilderDomain.XMLBuilderDomain): if not cpu.model: raise ValueError(_("No host CPU reported in capabilities")) + self.mode = "custom" self.match = "exact" self.model = cpu.model self.vendor = cpu.vendor @@ -261,16 +272,26 @@ class CPU(XMLBuilderDomain.XMLBuilderDomain): def _get_xml_config(self): top_xml = self._get_topology_xml() feature_xml = self._get_feature_xml() + mode_xml = "" match_xml = "" if self.match: match_xml = " match='%s'" % self.match xml = "" + if self.model == "host-passthrough": + self.mode = "host-passthrough" + mode_xml = " mode='%s'" % self.mode + xml += " <cpu%s/>" % mode_xml + return xml + else: + self.mode = "custom" + mode_xml = " mode='%s'" % self.mode + if not (self.model or top_xml or feature_xml): return "" # Simple topology XML mode - xml += " <cpu%s>\n" % match_xml + xml += " <cpu%s%s>\n" % (mode_xml, match_xml) if self.model: xml += " <model>%s</model>\n" % self.model if self.vendor: -- 1.8.1.4 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list