[virt-tools-list] [PATCH 1/2] Add support for cpu mode attribute and cpu host-passthrough

Hu Tao hutao at cn.fujitsu.com
Mon Apr 8 10:22:33 UTC 2013


Hi,

Any comments?

On Fri, Mar 29, 2013 at 03:09:26PM +0800, Hu Tao wrote:
> From: Ken ICHIKAWA <ichikawa.ken at jp.fujitsu.com>
> 
> With this patch, users can use cpu host-passthrough like this:
> 
>   virt-install --cpu host-passthrough ...
> 
> Signed-off-by: Ken ICHIKAWA <ichikawa.ken at jp.fujitsu.com>
> Signed-off-by: Hu Tao <hutao at cn.fujitsu.com>
> ---
>  virtinst/CPU.py | 20 +++++++++++++++++++-
>  1 file changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/virtinst/CPU.py b/virtinst/CPU.py
> index 6ada5bc..33e8886 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,23 @@ 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
> +
>          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 at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list




More information about the virt-tools-list mailing list