[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xl and GFX passthrough
Ian Campbell wrote: I think gfx_passthrough is actually a boolean, right? In that case it should be declared as "bool" in the idl. Well, the integer value of gfx_passthru had meaning in 2009, I suspect. It differentiated between IGD adapter and discrete adapter. http://xen.1045712.n5.nabble.com/PATCH-0-2-v2-graphics-passthrough-with-VT-d-td2534811.htmlAt now, I didn't notice integer meaning of this variable in the code. I changed it to bool in the new patch. Sergey. commit 258e2a6cbccea92bd4d11cbe15963f139e8810cc Author: Sergey Tovpeko <tovpeko@xxxxxxxxx> Date: Fri Jul 9 20:33:39 2010 +0400 Pass gfx_passthru option to the device_model. To enable gfx passthru, xl should parse 'gfx_passthru' parameter from config file, and pass it to qemu-dm. diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 2c3fb0f..c630193 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1208,6 +1208,11 @@ static char ** libxl_build_device_model_args_old(libxl__gc *gc, flexarray_set(dm_args, num++, "-vcpu_avail"); flexarray_set(dm_args, num++, libxl__sprintf(gc, "0x%x", info->vcpu_avail)); } + if (info->gfx_passthru) { + flexarray_set(dm_args, num++, "-gfx_passthru"); + flexarray_set(dm_args, num++, libxl__sprintf(gc, "%d", info->gfx_passthru)); + } + for (i = 0; i < num_vifs; i++) { if (vifs[i].nictype == NICTYPE_IOEMU) { char *smac = libxl__sprintf(gc, "%02x:%02x:%02x:%02x:%02x:%02x", diff --git a/tools/libxl/libxl.idl b/tools/libxl/libxl.idl index 81fcfd9..8059328 100644 --- a/tools/libxl/libxl.idl +++ b/tools/libxl/libxl.idl @@ -96,6 +96,7 @@ libxl_domain_build_info = Struct("domain_build_info",[ ("disable_migrate", bool), ("kernel", libxl_file_reference), ("cpuid", libxl_cpuid_policy_list), + ("gfx_passthru", bool), ("hvm", integer), ("u", KeyedUnion(None, "hvm", [("hvm", "%s", Struct(None, @@ -161,6 +162,7 @@ libxl_device_model_info = Struct("device_model_info",[ ("vcpu_avail", integer, False, "vcpus actually available"), ("xen_platform_pci", integer, False, "enable/disable the xen platform pci device"), ("extra", libxl_string_list, False, "extra parameters pass directly to qemu, NULL terminated"), + ("gfx_passthru", bool, False, "GFX passthrough enabled or disabled"), ], comment= """Device Model information. diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 1eace78..415b9b8 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -363,6 +363,7 @@ static void init_dm_info(libxl_device_model_info *dm_info, dm_info->apic = b_info->u.hvm.apic; dm_info->vcpus = b_info->max_vcpus; dm_info->vcpu_avail = b_info->cur_vcpus; + dm_info->gfx_passthru = b_info->gfx_passthru; dm_info->stdvga = 0; dm_info->vnc = 1; @@ -900,6 +901,9 @@ static void parse_config_data(const char *configfile_filename_report, xlu_cfg_replace_string (config, "kernel", &b_info->kernel.path); + if (!xlu_cfg_get_long (config, "gfx_passthru", &l)) + b_info->gfx_passthru = l; + if (c_info->hvm == 1) { if (!xlu_cfg_get_long (config, "pae", &l)) b_info->u.hvm.pae = l; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |