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

Re: [Xen-devel] [PATCH for-4.5 v6 05/16] tools: Add vmware_port support




On 09/25/14 07:24, Ian Campbell wrote:
On Wed, 2014-09-24 at 12:31 -0400, Don Slutz wrote:
On 09/23/14 08:20, Ian Campbell wrote:
On Mon, 2014-09-22 at 12:42 -0400, Don Slutz wrote:

[snip]

And vmware_port is not ignored. What I suggested was "if vmware_hw is non-zero then set vmware_port".

I am reading that as "set vmware_port if not specified".  To avoid
complexity, I am treating vmware_hw as a boolean.  Using this
I get the following table:

_hw   _port
   0     0        Just like today
   1     0        Only cpuid leaves change -- very unlikey
   1     1        Full VMware mode
   0     1        VMware hyper call mode.

Adding U for unspecified:

_hw   _port
   U     U        ==> _hw=0 _port=0
   0     U        ==> _hw=0 _port=0
   1     U        The case in question.
   U     0        ==> _hw=0 _port=0
   U     1        What I was talking about.
   0     0        Just like today
   1     0        Only cpuid leaves change -- very unlikey
   1     1        Full VMware mode
   0     1        VMware hyper call mode.

The problem here is that vmware_hw is not a boolean and there is
currently not a value that lets you know it has not been specified.
The unspecified value is 0, surely? All of the rows with U under _hw can
be ignored, I am talking only about _port being a defbool.

   0     U        ==> _hw=0 _port=0
   1     U        The case in question.

=> libxl should convert U to 1.

   0     0        Just like today
   1     0        Only cpuid leaves change -- very unlikey
   1     1        Full VMware mode
   0     1        VMware hyper call mode.

All reasonable things to ask for explicitly, I think (I'm not so sure
about the last one, might be an error?).


This is not an error as far as VMware says in "Mechanisms to determine
if software is running in a VMware virtual machine":

*Recommended code*

int Detect_VMware(void)
{
        if (cpuid_check())
                return 1;               // Success running under VMware.
        else if (dmi_check() && hypervisor_port_check())
                return 1;
        return 0;
}



If there is code that has issues with Xen in cpuid leaves and VMware port
"working", then yes this is a bad config to pick.

   -Don Slutz


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.