From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53237) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIRqg-0007Ny-6n for qemu-devel@nongnu.org; Mon, 02 Feb 2015 20:00:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YIRqc-0004sR-S0 for qemu-devel@nongnu.org; Mon, 02 Feb 2015 20:00:14 -0500 Received: from mga11.intel.com ([192.55.52.93]:61950) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIRqc-0004rf-Nd for qemu-devel@nongnu.org; Mon, 02 Feb 2015 20:00:10 -0500 Message-ID: <54D01D94.3020003@intel.com> Date: Tue, 03 Feb 2015 09:00:04 +0800 From: "Chen, Tiejun" MIME-Version: 1.0 References: <1422839843-25622-1-git-send-email-tiejun.chen@intel.com> <1422875296.10090.0.camel@citrix.com> In-Reply-To: <1422875296.10090.0.camel@citrix.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [v2][PATCH] libxl: add one machine property to support IGD GFX passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ian Campbell Cc: wei.liu2@citrix.com, Ian.Jackson@eu.citrix.com, qemu-devel@nongnu.org, xen-devel@lists.xen.org, stefano.stabellini@citrix.com, kraxel@redhat.com On 2015/2/2 19:08, Ian Campbell wrote: > On Mon, 2015-02-02 at 09:17 +0800, Tiejun Chen wrote: >> When we're working to support IGD GFX passthrough with qemu >> upstream, instead of "-gfx_passthru" we'd like to make that >> a machine option, "-machine xxx,-igd-passthru=on". This need >> to bring a change on tool side. > >>>From which Qemu version is this new option accepted? What will a verison > of qemu prior to then do when presented with the new option? Sorry, maybe I'm not describing this correctly. Actually qemu upstream never own this option, '-gfx_passthru' at all. This just exists alone in qemu-xen-traditional. So here I'm trying to introduce a new stuff that doesn't clash anything in qemu upstream. So I guess I should rephrase this as follows: libxl: add one machine property to support IGD GFX passthrough When we're working to support IGD GFX passthrough with qemu upstream, we'd like to introduce a machine option, "-machine xxx,igd-passthru=on", to enable/disable that feature. And we also remove that old option, "-gfx_passthru", just from the case of LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN since actually no any qemu stream version really need or use that. > > (nb: you have an extra '-' in the description I think) Yeah, I will remove that. Thanks Tiejun > >> >> Signed-off-by: Tiejun Chen >> --- >> v2: >> >> * Based on some discussions with Wei we'd like to keep both old >> option, -gfx_passthru, and new machine property option, >> "-machine xxx,-igd-passthru=on" at the same time but deprecate >> the old one. Then finally we remove the old one at that point >> that to give downstream (in this case, Xen) time to cope with the >> change. >> >> tools/libxl/libxl_dm.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) >> >> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c >> index c2b0487..8405f0b 100644 >> --- a/tools/libxl/libxl_dm.c >> +++ b/tools/libxl/libxl_dm.c >> @@ -701,6 +701,11 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc, >> flexarray_append(dm_args, "-net"); >> flexarray_append(dm_args, "none"); >> } >> + /* >> + * Although we already introduce 'igd-passthru', but we'd like >> + * to remove this until we give downstream time to cope with >> + * the change. >> + */ >> if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) { >> flexarray_append(dm_args, "-gfx_passthru"); >> } >> @@ -748,6 +753,11 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc, >> machinearg, max_ram_below_4g); >> } >> } >> + >> + if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) { >> + machinearg = libxl__sprintf(gc, "%s,igd-passthru=on", machinearg); >> + } >> + >> flexarray_append(dm_args, machinearg); >> for (i = 0; b_info->extra_hvm && b_info->extra_hvm[i] != NULL; i++) >> flexarray_append(dm_args, b_info->extra_hvm[i]); > > >