On 05/22/2015 04:50 PM, Don Slutz wrote:
> This is used to set xen_arch_domainconfig vmware_hw. It is set to
> the emulated VMware virtual hardware version.
> 
> Currently 0, 3-4, 6-11 are good values.  However the code only
> checks for == 0, != 0, or < 7.
> 
> Signed-off-by: Don Slutz <dsl...@verizon.com>

Ian,

It looks like you gave a pre-approved Ack to something almost identical
to v10.  The only thing in v10 not in your pre-approval specification
was removing the thing automatically setting vga=vmware.  Instead in v10
he added a patch to take 'vmware' as an explicit argument to vga.

Patch 2 is reviewed-by Andy Cooper (and can have an Ack from me if it's
wanted), and patches 1-3 constitute a sensible chunk of functionality --
if you could take a quick look over 1 and 3 and give them a thumbs-up, I
think it might make sense to go ahead and check those in.

(Still working through the rest of the patches.)

 -George

> ---
> v11:
>   Dropped "If non-zero then default VGA to VMware's VGA"
> 
> v10:
>     LIBXL_HAVE_LIBXL_VGA_INTERFACE_TYPE_VMWARE &
>     LIBXL_HAVE_BUILDINFO_HVM_VMWARE_HWVER are arriving together
>     a single umbrella could be used.
>       Since I split the LIBXL_VGA_INTERFACE_TYPE_VMWARE into
>       it's own patch, this is not longer true.
>       But I did use 1 for the 2 c_info changes.
>     Please use GCSPRINTF.
>   Remove vga=vmware from here.
> 
> v9:
>       I assumed that s/vmware_hw/vmware_hwver/ is not a big enough
>       change to drop the Reviewed-by.  Did a minor edit to the
>       commit message to add 7 to the list of values checked.
> 
> v7:
>     Default handling of hvm.vga.kind bad.
>       Fixed.
>     Default of vmware_port should be based on vmware_hw.
>       Done. 
> 
> v5:
>       Anything looking for Xen according to the Xen cpuid instructions...
>         Adjusted doc to new wording.
> 
>  docs/man/xl.cfg.pod.5       | 17 +++++++++++++++++
>  tools/libxc/xc_domain.c     |  2 +-
>  tools/libxl/libxl_create.c  |  4 +++-
>  tools/libxl/libxl_types.idl |  1 +
>  tools/libxl/libxl_x86.c     |  3 +--
>  tools/libxl/xl_cmdimpl.c    |  2 ++
>  6 files changed, 25 insertions(+), 4 deletions(-)
> 
> diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
> index 84078f6..eaad4bf 100644
> --- a/docs/man/xl.cfg.pod.5
> +++ b/docs/man/xl.cfg.pod.5
> @@ -1348,6 +1348,23 @@ The viridian option can be specified as a boolean. A 
> value of true (1)
>  is equivalent to the list [ "defaults" ], and a value of false (0) is
>  equivalent to an empty list.
>  
> +=item B<vmware_hwver=NUMBER>
> +
> +Turns on or off the exposure of VMware cpuid.  The number is
> +VMware's hardware version number, where 0 is off.  A number >= 7
> +is needed to enable exposure of VMware cpuid.
> +
> +The hardware version number (vmware_hwver) come from VMware config files.
> +
> +=over 4
> +
> +In a .vmx it is virtualHW.version
> +
> +In a .ovf it is part of the value of vssd:VirtualSystemType.
> +For vssd:VirtualSystemType == vmx-07, vmware_hwver = 7.
> +
> +=back
> +
>  =back
>  
>  =head3 Emulated VGA Graphics Device
> diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
> index 38d065f..4362d5d 100644
> --- a/tools/libxc/xc_domain.c
> +++ b/tools/libxc/xc_domain.c
> @@ -64,7 +64,7 @@ int xc_domain_create(xc_interface *xch,
>      memset(&config, 0, sizeof(config));
>  
>  #if defined (__i386) || defined(__x86_64__)
> -    /* No arch-specific configuration for now */
> +    /* No arch-specific default configuration for now */
>  #elif defined (__arm__) || defined(__aarch64__)
>      config.gic_version = XEN_DOMCTL_CONFIG_GIC_DEFAULT;
>      config.nr_spis = 0;
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index 86384d2..895577f 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -464,7 +464,7 @@ int libxl__domain_build(libxl__gc *gc,
>          vments[4] = "start_time";
>          vments[5] = libxl__sprintf(gc, "%lu.%02d", 
> start_time.tv_sec,(int)start_time.tv_usec/10000);
>  
> -        localents = libxl__calloc(gc, 9, sizeof(char *));
> +        localents = libxl__calloc(gc, 11, sizeof(char *));
>          i = 0;
>          localents[i++] = "platform/acpi";
>          localents[i++] = libxl_defbool_val(info->u.hvm.acpi) ? "1" : "0";
> @@ -472,6 +472,8 @@ int libxl__domain_build(libxl__gc *gc,
>          localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s3) ? "1" : "0";
>          localents[i++] = "platform/acpi_s4";
>          localents[i++] = libxl_defbool_val(info->u.hvm.acpi_s4) ? "1" : "0";
> +        localents[i++] = "platform/vmware_hwver";
> +        localents[i++] = GCSPRINTF("%"PRId64, d_config->c_info.vmware_hwver);
>          if (info->u.hvm.mmio_hole_memkb) {
>              uint64_t max_ram_below_4g =
>                  (1ULL << 32) - (info->u.hvm.mmio_hole_memkb << 10);
> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
> index 6cab732..c8a1345 100644
> --- a/tools/libxl/libxl_types.idl
> +++ b/tools/libxl/libxl_types.idl
> @@ -343,6 +343,7 @@ libxl_domain_create_info = Struct("domain_create_info",[
>      ("run_hotplug_scripts",libxl_defbool),
>      ("pvh",          libxl_defbool),
>      ("driver_domain",libxl_defbool),
> +    ("vmware_hwver", uint64),
>      ], dir=DIR_IN)
>  
>  libxl_domain_restore_params = Struct("domain_restore_params", [
> diff --git a/tools/libxl/libxl_x86.c b/tools/libxl/libxl_x86.c
> index 651b338..fd7dafa 100644
> --- a/tools/libxl/libxl_x86.c
> +++ b/tools/libxl/libxl_x86.c
> @@ -5,8 +5,7 @@ int libxl__arch_domain_prepare_config(libxl__gc *gc,
>                                        libxl_domain_config *d_config,
>                                        xc_domain_configuration_t *xc_config)
>  {
> -    /* Note: will be changed in a later patch */
> -    xc_config->vmware_hwver = 0;
> +    xc_config->vmware_hwver = d_config->c_info.vmware_hwver;
>      return 0;
>  }
>  
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 02f5c7a..e79a9d0 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -1383,6 +1383,8 @@ static void parse_config_data(const char *config_source,
>      b_info->cmdline = parse_cmdline(config);
>  
>      xlu_cfg_get_defbool(config, "driver_domain", &c_info->driver_domain, 0);
> +    if (!xlu_cfg_get_long(config, "vmware_hwver",  &l, 1))
> +        c_info->vmware_hwver = l;
>  
>      switch(b_info->type) {
>      case LIBXL_DOMAIN_TYPE_HVM:
> 


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

Reply via email to