|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.5 v6 02/16] tools: Add vmware_hw support
On Sat, 2014-09-20 at 14:07 -0400, Don Slutz wrote:
> This is used to set HVM_PARAM_VMWARE_HW. It is set to the VMware
> virtual hardware version.
>
> Currently 0, 3-4, 6-11 are good values. However the code only
> checks for == 0 or != 0.
>
> If non-zero then
> default VGA to VMware's VGA.
>
> Also now allows vga=vmware
>
> Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>
> ---
> v5:
> Anything looking for Xen according to the Xen cpuid instructions...
> Adjusted doc to new wording.
>
> docs/man/xl.cfg.pod.5 | 21 +++++++++++++++++++--
> docs/misc/hypervisor-cpuid.markdown | 28 ++++++++++++++++++++++++++++
> tools/libxc/xc_domain_restore.c | 14 ++++++++++++++
> tools/libxc/xc_domain_save.c | 11 +++++++++++
> tools/libxc/xg_save_restore.h | 2 ++
> tools/libxl/libxl.h | 10 ++++++++++
> tools/libxl/libxl_create.c | 4 +++-
> tools/libxl/libxl_dm.c | 10 +++++++++-
> tools/libxl/libxl_dom.c | 2 ++
> tools/libxl/libxl_types.idl | 2 ++
> tools/libxl/xl_cmdimpl.c | 11 ++++++++++-
> 11 files changed, 110 insertions(+), 5 deletions(-)
> create mode 100644 docs/misc/hypervisor-cpuid.markdown
>
> diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
> index 517ae2f..367b401 100644
> --- a/docs/man/xl.cfg.pod.5
> +++ b/docs/man/xl.cfg.pod.5
> @@ -1147,6 +1147,23 @@ some other Operating Systems and in some circumstance
> can prevent
> Xen's own paravirtualisation interfaces for HVM guests from being
> used.
>
> +=item B<vmware_hw=NUMBER>
> +
> +Turns on or off the exposure of VMware cpuid. The number is the
> +VMware's hardware version number, where 0 is off. If not zero it
> +changes the default VGA to VMware's VGA.
"is the VMware's" => "is VMware's".
> @@ -1185,8 +1202,8 @@ This option is deprecated, use vga="stdvga" instead.
>
> =item B<vga="STRING">
>
> -Selects the emulated video card (none|stdvga|cirrus).
> -The default is cirrus.
> +Selects the emulated video card (none|stdvga|cirrus|vmware).
> +The default is cirrus (or vmware if B<vmware_hw> is not zero).
"The default is cirrus unless B<vmware_hw> is non-zero in which case it
is vmware." ?
>
> =item B<vnc=BOOLEAN>
>
> diff --git a/docs/misc/hypervisor-cpuid.markdown
> b/docs/misc/hypervisor-cpuid.markdown
> new file mode 100644
> index 0000000..901a4e1
> --- /dev/null
> +++ b/docs/misc/hypervisor-cpuid.markdown
> @@ -0,0 +1,28 @@
> +Hypervisor Cpuid
> +================
> +
> +The support of hypervisor cpuid leaves has not been agreed to.
by....
"the general hypervisor community" perhaps?
Perhaps a better way of putting this would be "There is no agreed
standard for the use of hypervisor cpuid leaves" or some such.
> +Other then the range 0x40000000 to 0x400000ff can be used by
> +hypervisors.
s/then/than/ I think.
> +
> +MicroSoft Hyper-V (AKA viridian) currently must be at 0x40000000.
> +
> +VMware currently must be at 0x40000000.
> +
> +KVM currently must be at 0x40000000 (from Seabios).
> +
> +Xen can be found at the first otherwise unused 0x100 aligned
> +offset between 0x40000000 and 0x40010000.
I think you should add " leaves" after each hypervisor name.
> @@ -378,6 +379,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
> ("timeoffset", string),
> ("hpet", libxl_defbool),
> ("vpt_align", libxl_defbool),
> + ("vmware_hw", UInt(64,
> init_val = 0)),
There is no need for an explicitly 0 init_val, it's the default default.
> ("timer_mode",
> libxl_timer_mode),
> ("nested_hvm", libxl_defbool),
> ("smbios_firmware", string),
> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
> index 698b3bc..2119bd6 100644
> --- a/tools/libxl/xl_cmdimpl.c
> +++ b/tools/libxl/xl_cmdimpl.c
> @@ -1038,6 +1038,8 @@ static void parse_config_data(const char *config_source,
> xlu_cfg_get_defbool(config, "hpet", &b_info->u.hvm.hpet, 0);
> xlu_cfg_get_defbool(config, "vpt_align", &b_info->u.hvm.vpt_align,
> 0);
>
> + if (!xlu_cfg_get_long(config, "vmware_hw", &l, 1))
> + b_info->u.hvm.vmware_hw = l;
> if (!xlu_cfg_get_long(config, "timer_mode", &l, 1)) {
> const char *s = libxl_timer_mode_to_string(l);
> fprintf(stderr, "WARNING: specifying \"timer_mode\" as an
> integer is deprecated. "
> @@ -1676,13 +1678,20 @@ skip_vfb:
> b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
> } else if (!strcmp(buf, "none")) {
> b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_NONE;
> + } else if (!strcmp(buf, "vmware")) {
> + b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_VMWARE;
> } else {
> fprintf(stderr, "Unknown vga \"%s\" specified\n", buf);
> exit(1);
> }
> } else if (!xlu_cfg_get_long(config, "stdvga", &l, 0))
> b_info->u.hvm.vga.kind = l ? LIBXL_VGA_INTERFACE_TYPE_STD :
> - LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
> + b_info->u.hvm.vmware_hw ? LIBXL_VGA_INTERFACE_TYPE_VMWARE :
> + LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
I don't think this is a good idea. stdvga = 1 in the config file should
still mean stdvga, not conditionally vmware. Likewise stdvga = 0 should
always be cirrus.
Someone who wants to force vmware should use vga=vmware and not specify
stdvga at all.
(NB: stdvga is deprecated synonym, the man page advises using vga=
already)
> + else
> + b_info->u.hvm.vga.kind =
> + b_info->u.hvm.vmware_hw ? LIBXL_VGA_INTERFACE_TYPE_VMWARE :
> + LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
This else clause shouldn't be here, update
libxl__domain_build_info_setdefault instead where it currently says:
if (!b_info->u.hvm.vga.kind)
b_info->u.hvm.vga.kind = LIBXL_VGA_INTERFACE_TYPE_CIRRUS;
note that this code should only set vga.kind if it is currently zero
(which indicates to libxl "pick a default")
>
> xlu_cfg_replace_string (config, "keymap", &b_info->u.hvm.keymap, 0);
> xlu_cfg_get_defbool (config, "spice", &b_info->u.hvm.spice.enable,
> 0);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |