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