WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] xl and GFX passthrough

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] xl and GFX passthrough
From: Sergey Tovpeko <tsv.devel@xxxxxxxxx>
Date: Thu, 13 Jan 2011 13:05:14 +0300
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 13 Jan 2011 02:11:36 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=NZ1wtjMdukJ5NCv+KrT4Y0RegixrODbQnK3p4Rgi5ks=; b=xRVdQKMABh8uoeDQHaM8K7r9qpNoVEKOGfiTJ/v+Ocf/mWKD+cNLVPvPYz0WzNBuM+ zEeEVeZ5lTGf9yiHNF42ftx8D5vVz3Nt/xGowX/89/tgOtlsN7FjI9m2CoPRS6RJ9QPN 7K6HwdpJfsZBkkZ/bx8dn7UV0zF2L0bRaFS9g=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; b=i49L9tpcEZDK3Z8M0FbN4Fg+eeBCe4gUCgG8FeEnYWwEHspL9EFkLlFqG3dsB0Oh8V QDIai0oP07wtOMEuqvITfze8obl0pqqYCf/tY0LGnxKX9CZKhgo3wudNAyIG8nAqcIY8 NyKce/M4qlJaUe7syn8ohM0kSLBXLOiKtYicc=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1294910794.8240.9.camel@xxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4D2EC20D.2050603@xxxxxxxxx> <1294910794.8240.9.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103)
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.html

At 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