Re: [PATCH 1/2] VMware guest detection for x86 and x86-64

Yan Li
2008-09-25T00:15:44Z

On Wed, Sep 24, 2008 at 09:19:44AM -0700, Alok kataria wrote:
> Thanks for doing this patch.
> It would be really beneficial to detect if we are running on a
> hypervisor in general. Though i think the approach should be more
> generic, so that we have a common interface for all the hypervisors.
> I have some patches which use "cpuid" to detect if we are running on a
> hypevisor and use various cpuid leafs to get some hypervisor specific
> info.
> This CPUID interface will be available only in the newer (read,
> Hardware version 7) version of VMware products. So still for the
> products which don't use the newer hardware version, this patch is
> helpful.

Hi Alok,

Thanks for your comments. Sure, it's good to add a common interface
for all the hypervisors. And I'd like to work on that.

> Btw, are you pushing these patches for the 2.6.27 release ? If this is
> for the x86 tree(2.6.28) i think we should hold on, until i post the
> proposal for the cpuid patches, so that we can unify this and have a
> generic way to detect on which hypervisor are we running .

My motivation behind this patch is to serve the MTRR codes to fix a
false warning, so I'd like to see it in 2.6.28 as soon as
possible. The latest 2.6.27-rc7 is issuing false warning when running
under the VMware Server 1.0.7, complaining that MTRR's all blank.
Currently the false warning has been confirmed under both KVM and
VMware so the detection for these two VMs are added in my [PATCH
2/2]. For this specific reason (fixing false warning), a common
interface maybe not necessary unless we are sure all VMs have their
CPU's MTRR blank (it would be very difficult to confirm this on all
VMs human has made). Therefore I'd like to make this patch as simple
as possible and make into 2.6.28 since it's fixing false warning (one
can say it's a regression since at least 2.6.24 doesn't issue a false
warning here).

Also I'd be very happy to work with you to combine this with your
CPUID detection code. I think VMware Server 2.0 is using Hardware
version 7 VM, right? So I can combine your and my code to test it.

But my concern is that for such a simple function (detecting VMware,
not a common interface), is it worth to have more codes to use two
different ways for detecting new and older VMwware while a simple
dmi_name_in_vendors() might be enough in both situation? I don't think
bloating the kernel is good.

Thanks!

--
Li, Yan