[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 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:
> >>> The latter would allow moving to buildinfo.u.hvm, which would be nicer
> >>> from the libxl PoV, I think.
> >> I could not find "buildinfo.u.hvm":
> >>
> >>
> >> dcs-xen-54:~/xen>git grep buildinfo.u.hvm
> >> dcs-xen-54:~/xen>
> >>
> >>
> >> So unable to comment.
> > It's in the idl, next to createinfo.
> 
> I take that to mean:
> 
> 
> libxl_domain_config = Struct("domain_config", [
>      ("c_info", libxl_domain_create_info),
>      ("b_info", libxl_domain_build_info),
> ...
> 
> I.E.
> 
> b_info->u.hvm

Yes.


> >>    Currently I do not know of a way to
> >> say "set vmware_hw to 7
> >> if vmware_port is true and vmware_hw is not specified".
> > That's an error case, isn't it? Or at least a vmware_port is ignored
> > case.
> 
> Nope.  But I will agree that I have not done a lot with 3 (at least)
> state booleans.  The 3 states being true, false, and not specified.

The third state is "default" as in: libxl sets something sensible based
on other criteria (internal choice, other settings etc).

> 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?).

But a user who asks for vmware_hw and says nothing about _port should
get _port = 1 automatically by libxl.

This should be as simple as in the appropriate setdefault function:
  libxl_defbool_setdefault(&...vmware_port, &...vmare_hw != 0);

The setdefault sets the first argument to the second iff it is current
== default.

> So I think it is just more confusing to have vmware_hw change
> the default of vmware_port but the inverse is not true.
> 
>     -Don Slutz
> 
> >>    Which would be
> >> the inverse.  I lean to
> >> not having the default of vmware_port based on vmware_hw.
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



_______________________________________________
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®.