On Wed, Oct 29, 2014 at 05:04:22PM +0530, Prerna Saxena wrote:
> 
> On Tuesday 28 October 2014 05:32 PM, Daniel P. Berrange wrote:
> > On Tue, Oct 28, 2014 at 04:43:59PM +0530, Prerna Saxena wrote:
> >>
> >> This patch allows libvirt to extend the "fallback" semantics of cpu model 
> >> to
> >> describe this new mode for PowerKVM guests.
> >> As an example:
> >> When a user wants to request a power7 vm to run in compatibility mode on
> >> a Power8 host, this can be described in XML as follows :
> >>   <cpu mode='host-model' match='exact'>
> >>     <model fallback='compat'>power7</model>
> > I don't really see any point in adding the fallback='compat' 
> > attribute. That is  basically always implied if you use
> > mode=host-model in combination with a named model.
> Hi Daniel,
> Running in compatibility mode is not identical to running natively on an 
> older processor.
> Reproducing the example from : 
> http://www.redhat.com/archives/libvir-list/2014-October/msg00359.html
> 
> On PowerKVM, we can run VMs in 2 possible vCPU configurations:
> 1) Host native mode: Where host is power7; guest VMs also see power7 vcpus.
>     Required qemu command line : "-cpu host"
> 
> 2) Compat mode: In this case, the host CPU is Power8, but it can run
> in binary compatibility mode with an older version of ISA(such as
> power7). So it will exhibit only those features that were
> available in an older generation of Power ISA. The guest will see a
> "power7" vCPU even though it is running on a physical "power8" chip.
> This is a hardware feature that is enabled via a qemu/kvm switch.
> 
> Required QEMU command line for PowerKVM : "-cpu host,compat=power7"

Sure, I don't debate that this is the QEMU command line syntax. I don't
see any reason why the fact that QEMU uses 'compat' here requires the
addition of 'compat' at the libvit XML level.

> 
> My patch attempts to define semantics for this second mode of execution.
> 
> A VM running in compat mode will not just differ in terms of qemu command 
> line, but also in behaviour when contrasted with the host native mode. In 
> other words, applications running on  "power7"
> native VM  will see different CPU as compared to applications running on a 
> compat-mode "power7" VM over a Power8 host. From a VM management perspective, 
> this difference needs to be brought out in XML.
> 
> Also, "compat" mode is one way of emulating an older processor chip, but it 
> may not be the _only_ way.
> 
> Hence the virtualization stack needs to explicitly distinguish a compat-mode 
> VM.
> 
> In my v2 post, you had suggested that model fallback 'compat' be based on  
> "host-model" cpu mode in place of "custom". I have sent out v3 and v4 based 
> on this suggestion.
> 
> Hope this XML schema is acceptable:
> <cpu mode='host-model'>
>    <model fallback='compat'>power7</model>
>  </cpu>

The current libvirt code only allows for

   <cpu mode="host-model"/>

which maps to  '-cpu host'

Given this starting point, it is sufficient to just have

  <cpu mode='host-model'>
    <model>power7</model>
  </cpu>

mapping to '-cpu host,compat=power7'

ie the very existance of a <model> against host-model is
sufficient. We don't need to invent a pointless fallback=compat
attribute too.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to