Re: [PATCH v2 1/1] target-i386: Fix default Hypervisor level for hypervisor-vendor=kvm.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 09/21/12 16:49, Eduardo Habkost wrote:
On Fri, Sep 21, 2012 at 04:26:58PM -0400, Don Slutz wrote:
On 09/21/12 10:18, Eduardo Habkost wrote:
On Thu, Sep 20, 2012 at 04:06:27PM -0400, Don Slutz wrote:
 From http://lkml.indiana.edu/hypermail/linux/kernel/1205.0/00100.html
EAX should be KVM_CPUID_FEATURES (0x40000001) not 0.

Added hypervisor-vendor=kvm0 to get the older CPUID result. kvm1 selects the newer one.
Why not just make "hypervisor-vendor=kvm" control only the hypervisor
vendor string, and support something like "kvm-hypervisor-level=0" to
restore the old cpuid_hv_level=0 behavior?
   -cpu host,hypervisor-vendor=kvm,hypervisor-level=0

  Does this.
Good.  :-)

This is similar to the kvmclock case: it would allow us to make
"hypervisor-vendor=kvm" use saner values as default, but letting old
machine-types to override it for compatibility if required.
Right now since I am using env->cpuid_hv_level == 0 as a flag. This
means that:

   -cpu host,hypervisor-level=0,hypervisor-vendor=kvm

   -cpu host,hypervisor-vendor=kvm,hypervisor-level=0

end up with different CPUID data (Which I do not like). I will fix this in the next round.
Right. This has to be fixed.

Did you want me to drop kvm0 and kvm1?
Yes, if level is already configurable using the hypervisor-level
property, I don't see the need for kvm0 and kvm1.

If you make kvm_arch_init_vcpu() actually use those fields, you will end
up implementing what's required to allow migration compatibility to be
kept (the only thing missing is to make the CPU class a child of
DeviceState, and add hypervisor-level=0 to the existing machine-types).
:-)

You mean like
  http://lists.gnu.org/archive/html/qemu-devel/2012-09/msg03402.html
and
  http://lists.gnu.org/archive/html/qemu-devel/2012-09/msg03405.html
already change kvm_arch_init_vcpu(). I did not know that I need to make the CPU class a child of DeviceState. Nor that I needed to add hypervisor-vendor=kvm,hypervisor-level=0 to the existing machine-types. Since without specifying hypervisor-level=0 it defaults to 0 and kvm_arch_init_vcpu() will default to setting hypervisor-vendor=kvm.
   -Don
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux