[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200117021539.GA6715@zhen-hp.sh.intel.com>
Date: Fri, 17 Jan 2020 10:15:39 +0800
From: Zhenyu Wang <zhenyuw@...ux.intel.com>
To: Julian Stecklina <julian.stecklina@...erus-technology.de>
Cc: Greg KH <gregkh@...uxfoundation.org>,
Thomas Prescher <thomas.prescher@...erus-technology.de>,
linux-kernel@...r.kernel.org,
Zhenyu Wang <zhenyuw@...ux.intel.com>, hang.yuan@...el.com,
dri-devel@...ts.freedesktop.org,
intel-gvt-dev@...ts.freedesktop.org, zhiyuan.lv@...el.com
Subject: Re: [RFC PATCH 4/4] drm/i915/gvt: move public gvt headers out into
global include
On 2020.01.16 15:13:01 +0100, Julian Stecklina wrote:
> Hi Greg, Christoph,
>
> On Wed, 2020-01-15 at 16:22 +0100, Greg KH wrote:
> > On Thu, Jan 09, 2020 at 07:13:57PM +0200, Julian Stecklina wrote:
> > > Now that the GVT interface to hypervisors does not depend on i915/GVT
> > > internals anymore, we can move the headers to the global include/.
> > >
> > > This makes out-of-tree modules for hypervisor integration possible.
> >
> > What kind of out-of-tree modules do you need/want for this?
>
> The mediated virtualization support in the i915 driver needs a backend to the
> hypervisor. There is currently one backend for KVM in the tree
> (drivers/gpu/drm/i915/gvt/kvmgt.c) and at least 3 other hypervisor backends out
> of tree in various states of development that I know of. We are currently
> developing one of these.
>
> >
> > Also, as Christoph said, adding exports for functions that are not used
> > by anything within the kernel tree itself is not ok, that's not how we
> > work.
>
> The exports are used by the KVM hypervisor backend. The patchset I sent
> basically decouples KVMGT from i915 driver internals. So personally I would
> count this as a benefit in itself.
>
> There is already an indirection in place that looks like it is intended to
> decouple the hypervisor backends from the i915 driver core: intel_gvt_ops. This
> is a struct of function pointers that the hypervisor backend uses to talk to the
> GPU mediator code.
>
> Unfortunately, this struct doesn't cover all usecases and the KVM hypervisor
> backend directly touches the i915 devices' internal state in very few places. My
> current solution was to wrap these accesses in accessor functions and
> EXPORT_SYMBOL_GPL them.
>
> If the more acceptable solution is to add more function pointers to
> intel_gvt_ops instead of exporting symbols, I'm happy to go along this route.
>
That depends on the hypervisor requirement and purpose, if it requires
gvt device model for some function e.g emulate mmio, we want it to be
a general gvt_ops, if it just trys to retrieve some vgpu info, we
might see if some common wrapper of internal data would be more easier.
> > And why do they somehow have to be out of the tree? We want them in the
> > tree, and so should you, as it will save you time and money if they are.
>
> I also want these hypervisor backends in the tree, but from a development
> workflow having the ability to build them as a out-of-tree modules is very
> convenient. I guess this is also true for the developers working on the other
> hypervisor backends.
>
> When I looked at the status quo in i915/gvt a couple of weeks ago, it seemed
> like it would be a win for everyone. Let me just clearly say that we have no
> intention of doing binary blob drivers. :)
>
yeah, we do like to see more hypervisor support and make more clear interface
between core device model with that.
thanks
--
Open Source Technology Center, Intel ltd.
$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
Download attachment "signature.asc" of type "application/pgp-signature" (196 bytes)
Powered by blists - more mailing lists