All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 00/17] target-i386: Add way to expose VMWare CPUID
@ 2012-10-12 19:56 Don Slutz
  2012-10-12 19:56 ` [PATCH v7 01/17] target-i386: Add Hypervisor level Don Slutz
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: Don Slutz @ 2012-10-12 19:56 UTC (permalink / raw)
  To: qemu-devel, kvm, mtosatti, ehabkost, imammedo, avi, afaerber,
	peter.maydell, anthony
  Cc: Don Slutz

Also known as Paravirtualization CPUIDs.

This is primarily done so that the guest will think it is running
under vmware when hypervisor-vendor=vmware is specified as a
property of a cpu.

Patches 1 to 3 define new cpu properties.
Patches 4 to 6 Add QOM access to the new properties.
Patches 7 to 9 Add setting of these when cpu features hv_spinlocks,
  hv_relaxed, or hv_vapic are specified.
Patches 10 to 12 Change kvm to use these.
Patch 13 Add VMware timing info to kvm.
Patch 14 Makes it easier to use hypervisor-vendor=vmware.
Patches 15 to 17 Change tcg to use the new properties.

This depends on:

http://lists.gnu.org/archive/html/qemu-devel/2012-09/msg01400.html

As far as I know it is #4. It depends on (1) and (2) and (3).

This change is based on:

Microsoft Hypervisor CPUID Leaves:
  http://msdn.microsoft.com/en-us/library/windows/hardware/ff542428%28v=vs.85%29.aspx

Linux kernel change starts with:
  http://fixunix.com/kernel/538707-use-cpuid-communicate-hypervisor.html
Also:
  http://lkml.indiana.edu/hypermail/linux/kernel/1205.0/00100.html

VMware documention on CPUIDs (Mechanisms to determine if software is
running in a VMware virtual machine):
  http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458

Changes from v6 to v7:
  Subject changed from "Allow changing of Hypervisor CPUIDs." to "target-i386: Add way to expose VMWare CPUID"
  Split out 01/16 target-i386: Add missing kvm bits.
    It is no longer related to this patch set.  Will be top posted as a seperate patch.
Marcelo Tosatti:
  Better commit messages.
  Reorder patches.


Changes from v5 to v6:
  Split out 01/17: target-i386: Allow tsc-frequency to be larger then 2.147G
    It has been accepted as a trivial patch:
    http://lists.gnu.org/archive/html/qemu-devel/2012-09/msg03959.html
Blue Swirl:
  Fix 2 checkpatch.pl "WARNING: line over 80 characters".

Changes from v4 to v5:
  Undo kvm_clock2 change.
  Add cpuid_hv_level_set; cpuid_hv_level == 0 is now valid.
  Add cpuid_hv_vendor_set; the null string is now valid.
  Handle kvm and cpuid_hv_level == 0.
  hypervisor-vendor=kvm,hypervisor-level=0 and hypervisor-level=0,hypervisor-vendor=kvm
    now do the same thing.

Changes from v3 to v4:
  Added CPUID_HV_LEVEL_HYPERV, CPUID_HV_LEVEL_KVM.
  Added CPUID_HV_VENDOR_HYPERV.
  Added hyperv as known hypservisor-vendor.
  Allow hypervisor-level to be 0.

Changes from v2 to v3:
  Clean post to qemu-devel.

Changes from v1 to v2:

1) Added 1/4 from http://lists.gnu.org/archive/html/qemu-devel/2012-08/msg05153.html

   Because Fred is changing jobs and so will not be pushing to get
   this in. It needed to be rebased, And I needed it to complete the
   testing of this change.

2) Added 2/4 because of the re-work I needed a way to clear all KVM bits,

3) The rework of v1.  Make it fit into the object model re-work of cpu.c for x86.

4) Added 3/4 -- The split out of the code that is not needed for accel=kvm.

Changes from v2 to v3:

Marcelo Tosatti:
  Its one big patch, better split in logically correlated patches
  (with better changelog). This would help reviewers.

So split 3 and 4 into 3 to 17.  More info in change log.
No code change.

Don Slutz (17):
  target-i386: Add Hypervisor level.
  target-i386: Add Hypervisor vendor.
  target-i386: Add Hypervisor features.
  target-i386: Add cpu object access routines for Hypervisor level.
  target-i386: Add cpu object access routines for Hypervisor vendor.
  target-i386: Add cpu object access routines for Hypervisor features.
  target-i386: Add x86_set_hyperv.
  target-i386: Use x86_set_hyperv to set hypervisor vendor.
  target-i386: Use x86_set_hyperv to set hypervisor features.
  target-i386: Use Hypervisor level in -machine pc,accel=kvm.
  target-i386: Use Hypervisor vendor in -machine pc,accel=kvm.
  target-i386: Use Hypervisor features in -machine pc,accel=kvm.
  target-i386: Add VMWare CPUID Timing information in -machine
    pc,accel=kvm.
  target-i386: Add vmare as a known name to Hypervisor vendor.
  target-i386: Use Hypervisor level in -machine pc,accel=tcg.
  target-i386: Use Hypervisor vendor in -machine pc,accel=tcg.
  target-i386: target-i386: Add VMWare CPUID Timing information in
    -machine pc,accel=tcg

 target-i386/cpu.c |  205 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 target-i386/cpu.h |   29 ++++++++
 target-i386/kvm.c |   69 +++++++++++++++----
 3 files changed, 290 insertions(+), 13 deletions(-)


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2012-10-29 20:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-12 19:56 [PATCH v7 00/17] target-i386: Add way to expose VMWare CPUID Don Slutz
2012-10-12 19:56 ` [PATCH v7 01/17] target-i386: Add Hypervisor level Don Slutz
2012-10-12 19:56 ` [PATCH v7 02/17] target-i386: Add Hypervisor vendor Don Slutz
2012-10-12 19:56 ` [PATCH v7 03/17] target-i386: Add Hypervisor features Don Slutz
2012-10-12 19:56 ` [PATCH v7 04/17] target-i386: Add cpu object access routines for Hypervisor level Don Slutz
2012-10-12 19:56 ` [PATCH v7 05/17] target-i386: Add cpu object access routines for Hypervisor vendor Don Slutz
2012-10-12 19:56 ` [PATCH v7 06/17] target-i386: Add cpu object access routines for Hypervisor features Don Slutz
2012-10-12 19:56 ` [PATCH v7 07/17] target-i386: Add x86_set_hyperv Don Slutz
2012-10-12 19:56 ` [PATCH v7 08/17] target-i386: Use x86_set_hyperv to set hypervisor vendor Don Slutz
2012-10-12 19:56 ` [PATCH v7 09/17] target-i386: Use x86_set_hyperv to set hypervisor features Don Slutz
2012-10-12 19:56 ` [PATCH v7 10/17] target-i386: Use Hypervisor level in -machine pc,accel=kvm Don Slutz
2012-10-12 19:56 ` [PATCH v7 11/17] target-i386: Use Hypervisor vendor " Don Slutz
2012-10-12 19:56 ` [PATCH v7 12/17] target-i386: Use Hypervisor features in -machine pc, accel=kvm Don Slutz
2012-10-12 19:56 ` [PATCH v7 13/17] target-i386: Add VMWare CPUID Timing information in -machine pc,accel=kvm Don Slutz
2012-10-12 19:56 ` [PATCH v7 14/17] target-i386: Add vmare as a known name to Hypervisor vendor Don Slutz
2012-10-12 19:56 ` [PATCH v7 15/17] target-i386: Use Hypervisor level in -machine pc,accel=tcg Don Slutz
2012-10-12 19:56 ` [PATCH v7 16/17] target-i386: Use Hypervisor vendor " Don Slutz
2012-10-12 19:56 ` [PATCH v7 17/17] target-i386: target-i386: Add VMWare CPUID Timing information in -machine pc, accel=tcg Don Slutz
2012-10-29 20:39 ` [PATCH v7 00/17] target-i386: Add way to expose VMWare CPUID Marcelo Tosatti

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.