From: Marcelo Tosatti <mtosatti@redhat.com>
To: Don Slutz <Don@CloudSwitch.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, ehabkost@redhat.com,
imammedo@redhat.com, avi@redhat.com, afaerber@suse.de,
peter.maydell@linaro.org, anthony@codemonkey.ws
Subject: Re: [PATCH v7 00/17] target-i386: Add way to expose VMWare CPUID
Date: Mon, 29 Oct 2012 18:39:26 -0200 [thread overview]
Message-ID: <20121029203926.GA8188@amt.cnet> (raw)
In-Reply-To: <1350071782-23078-1-git-send-email-Don@CloudSwitch.com>
On Fri, Oct 12, 2012 at 03:56:05PM -0400, Don Slutz wrote:
> 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(-)
>
Looks good overall.
prev parent reply other threads:[~2012-10-29 20:39 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Marcelo Tosatti [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121029203926.GA8188@amt.cnet \
--to=mtosatti@redhat.com \
--cc=Don@CloudSwitch.com \
--cc=afaerber@suse.de \
--cc=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.