All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: Dongwon Kim <dongwon.kim@intel.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>,
	"Paul Durrant" <Paul.Durrant@citrix.com>,
	"jgross@suse.com" <jgross@suse.com>,
	"Artem Mygaiev" <Artem_Mygaiev@epam.com>,
	"airlied@linux.ie" <airlied@linux.ie>,
	"Oleksandr_Andrushchenko@epam.com"
	<Oleksandr_Andrushchenko@epam.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"Potrola, MateuszX" <mateuszx.potrola@intel.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"daniel.vetter@intel.com" <daniel.vetter@intel.com>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"Matt Roper" <matthew.d.roper@intel.com>
Subject: Re: [Xen-devel] [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver
Date: Thu, 19 Apr 2018 11:19:38 +0300	[thread overview]
Message-ID: <b18acfeb-64fc-74ff-1ac1-3b8c6da2b73b@gmail.com> (raw)
In-Reply-To: <20180418160115.GA20588@downor-Z87X-UD5H>

On 04/18/2018 07:01 PM, Dongwon Kim wrote:
> On Wed, Apr 18, 2018 at 03:42:29PM +0300, Oleksandr Andrushchenko wrote:
>> On 04/18/2018 01:55 PM, Roger Pau Monné wrote:
>>> On Wed, Apr 18, 2018 at 01:39:35PM +0300, Oleksandr Andrushchenko wrote:
>>>> On 04/18/2018 01:18 PM, Paul Durrant wrote:
>>>>>> -----Original Message-----
>>>>>> From: Xen-devel [mailto:xen-devel-bounces@lists.xenproject.org] On Behalf
>>>>>> Of Roger Pau Monné
>>>>>> Sent: 18 April 2018 11:11
>>>>>> To: Oleksandr Andrushchenko <andr2000@gmail.com>
>>>>>> Cc: jgross@suse.com; Artem Mygaiev <Artem_Mygaiev@epam.com>;
>>>>>> Dongwon Kim <dongwon.kim@intel.com>; airlied@linux.ie;
>>>>>> Oleksandr_Andrushchenko@epam.com; linux-kernel@vger.kernel.org; dri-
>>>>>> devel@lists.freedesktop.org; Potrola, MateuszX
>>>>>> <mateuszx.potrola@intel.com>; xen-devel@lists.xenproject.org;
>>>>>> daniel.vetter@intel.com; boris.ostrovsky@oracle.com; Matt Roper
>>>>>> <matthew.d.roper@intel.com>
>>>>>> Subject: Re: [Xen-devel] [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy
>>>>>> helper DRM driver
>>>>>>
>>>>>> On Wed, Apr 18, 2018 at 11:01:12AM +0300, Oleksandr Andrushchenko
>>>>>> wrote:
>>>>>>> On 04/18/2018 10:35 AM, Roger Pau Monné wrote:
>>>>>> After speaking with Oleksandr on IRC, I think the main usage of the
>>>>>> gntdev extension is to:
>>>>>>
>>>>>> 1. Create a dma-buf from a set of grant references.
>>>>>> 2. Share dma-buf and get a list of grant references.
>>>>>>
>>>>>> I think this set of operations could be broken into:
>>>>>>
>>>>>> 1.1 Map grant references into user-space using the gntdev.
>>>>>> 1.2 Create a dma-buf out of a set of user-space virtual addresses.
>>>>>>
>>>>>> 2.1 Map a dma-buf into user-space.
>>>>>> 2.2 Get grefs out of the user-space addresses where the dma-buf is
>>>>>>       mapped.
>>>>>>
>>>>>> So it seems like what's actually missing is a way to:
>>>>>>
>>>>>>    - Create a dma-buf from a list of user-space virtual addresses.
>>>>>>    - Allow to map a dma-buf into user-space, so it can then be used with
>>>>>>      the gntdev.
>>>>>>
>>>>>> I think this is generic enough that it could be implemented by a
>>>>>> device not tied to Xen. AFAICT the hyper_dma guys also wanted
>>>>>> something similar to this.
>>>> Ok, so just to summarize, xen-zcopy/hyper-dmabuf as they are now,
>>>> are no go from your POV?
> FYI,
>
> our use-case is "surface sharing" or "graphic obj sharing" where a client
> application in one guest renders and export this render target(e.g. EGL surface)
> as dma-buf. This dma-buf is then exported to another guest/host via hyper_dmabuf
> drv where a compositor is running. This importing domain creates a dmabuf with
> shared reference then it is imported as EGL image that later can be used as
> texture object via EGL api.

>   Mapping dmabuf to the userspace or vice versa
> might be possible with modifying user space drivers/applications but it is an
> unnecessary extra step from our perspective.
+1. I also feel like if it is implemented in the kernel space it
will be *much* more easier then inventing workarounds with
gntdev, user-space and helper dma-buf driver (which obviously can be
implemented). Of course, this approach is easier for Xen as we do not
touch its kernel code ;)
But there is a demand for changes as number of embedded/multimedia use-cases
is constantly growing and we have to react.
> Also, we want to keep all objects
> in the kernel level.
>
>>> My opinion is that there seems to be a more generic way to implement
>>> this, and thus I would prefer that one.
>>>
>>>> Instead, we have to make all that fancy stuff
>>>> with VAs <-> device-X and have that device-X driver live out of drivers/xen
>>>> as it is not a Xen specific driver?
>>> That would be my preference if feasible, simply because it can be
>>> reused by other use-cases that need to create dma-bufs in user-space.
>> There is a use-case I have: a display unit on my target has a DMA
>> controller which can't do scatter-gather, e.g. it only expects a
>> single starting address of the buffer.
>> In order to create a dma-buf from grefs in this case
>> I allocate memory with dma_alloc_xxx and then balloon pages of the
>> buffer and finally map grefs onto this DMA buffer.
>> This way I can give this shared buffer to the display unit as its bus
>> addresses are contiguous.
>>
>> With the proposed solution (gntdev + device-X) I won't be able to achieve
>> this,
>> as I have no control over from where gntdev/balloon drivers get the pages
>> (even more, those can easily be out of DMA address space of the display
>> unit).
>>
>> Thus, even if implemented, I can't use this approach.
>>> In any case I just knew about dma-bufs this morning, there might be
>>> things that I'm missing.
>>>
>>> Roger.

WARNING: multiple messages have this Message-ID (diff)
From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: Dongwon Kim <dongwon.kim@intel.com>
Cc: "jgross@suse.com" <jgross@suse.com>,
	"Artem Mygaiev" <Artem_Mygaiev@epam.com>,
	"Oleksandr_Andrushchenko@epam.com"
	<Oleksandr_Andrushchenko@epam.com>,
	"airlied@linux.ie" <airlied@linux.ie>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"Paul Durrant" <Paul.Durrant@citrix.com>,
	"Potrola, MateuszX" <mateuszx.potrola@intel.com>,
	"daniel.vetter@intel.com" <daniel.vetter@intel.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"boris.ostrovsky@oracle.com" <boris.ostrovsky@oracle.com>,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [Xen-devel] [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver
Date: Thu, 19 Apr 2018 11:19:38 +0300	[thread overview]
Message-ID: <b18acfeb-64fc-74ff-1ac1-3b8c6da2b73b@gmail.com> (raw)
In-Reply-To: <20180418160115.GA20588@downor-Z87X-UD5H>

On 04/18/2018 07:01 PM, Dongwon Kim wrote:
> On Wed, Apr 18, 2018 at 03:42:29PM +0300, Oleksandr Andrushchenko wrote:
>> On 04/18/2018 01:55 PM, Roger Pau Monné wrote:
>>> On Wed, Apr 18, 2018 at 01:39:35PM +0300, Oleksandr Andrushchenko wrote:
>>>> On 04/18/2018 01:18 PM, Paul Durrant wrote:
>>>>>> -----Original Message-----
>>>>>> From: Xen-devel [mailto:xen-devel-bounces@lists.xenproject.org] On Behalf
>>>>>> Of Roger Pau Monné
>>>>>> Sent: 18 April 2018 11:11
>>>>>> To: Oleksandr Andrushchenko <andr2000@gmail.com>
>>>>>> Cc: jgross@suse.com; Artem Mygaiev <Artem_Mygaiev@epam.com>;
>>>>>> Dongwon Kim <dongwon.kim@intel.com>; airlied@linux.ie;
>>>>>> Oleksandr_Andrushchenko@epam.com; linux-kernel@vger.kernel.org; dri-
>>>>>> devel@lists.freedesktop.org; Potrola, MateuszX
>>>>>> <mateuszx.potrola@intel.com>; xen-devel@lists.xenproject.org;
>>>>>> daniel.vetter@intel.com; boris.ostrovsky@oracle.com; Matt Roper
>>>>>> <matthew.d.roper@intel.com>
>>>>>> Subject: Re: [Xen-devel] [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy
>>>>>> helper DRM driver
>>>>>>
>>>>>> On Wed, Apr 18, 2018 at 11:01:12AM +0300, Oleksandr Andrushchenko
>>>>>> wrote:
>>>>>>> On 04/18/2018 10:35 AM, Roger Pau Monné wrote:
>>>>>> After speaking with Oleksandr on IRC, I think the main usage of the
>>>>>> gntdev extension is to:
>>>>>>
>>>>>> 1. Create a dma-buf from a set of grant references.
>>>>>> 2. Share dma-buf and get a list of grant references.
>>>>>>
>>>>>> I think this set of operations could be broken into:
>>>>>>
>>>>>> 1.1 Map grant references into user-space using the gntdev.
>>>>>> 1.2 Create a dma-buf out of a set of user-space virtual addresses.
>>>>>>
>>>>>> 2.1 Map a dma-buf into user-space.
>>>>>> 2.2 Get grefs out of the user-space addresses where the dma-buf is
>>>>>>       mapped.
>>>>>>
>>>>>> So it seems like what's actually missing is a way to:
>>>>>>
>>>>>>    - Create a dma-buf from a list of user-space virtual addresses.
>>>>>>    - Allow to map a dma-buf into user-space, so it can then be used with
>>>>>>      the gntdev.
>>>>>>
>>>>>> I think this is generic enough that it could be implemented by a
>>>>>> device not tied to Xen. AFAICT the hyper_dma guys also wanted
>>>>>> something similar to this.
>>>> Ok, so just to summarize, xen-zcopy/hyper-dmabuf as they are now,
>>>> are no go from your POV?
> FYI,
>
> our use-case is "surface sharing" or "graphic obj sharing" where a client
> application in one guest renders and export this render target(e.g. EGL surface)
> as dma-buf. This dma-buf is then exported to another guest/host via hyper_dmabuf
> drv where a compositor is running. This importing domain creates a dmabuf with
> shared reference then it is imported as EGL image that later can be used as
> texture object via EGL api.

>   Mapping dmabuf to the userspace or vice versa
> might be possible with modifying user space drivers/applications but it is an
> unnecessary extra step from our perspective.
+1. I also feel like if it is implemented in the kernel space it
will be *much* more easier then inventing workarounds with
gntdev, user-space and helper dma-buf driver (which obviously can be
implemented). Of course, this approach is easier for Xen as we do not
touch its kernel code ;)
But there is a demand for changes as number of embedded/multimedia use-cases
is constantly growing and we have to react.
> Also, we want to keep all objects
> in the kernel level.
>
>>> My opinion is that there seems to be a more generic way to implement
>>> this, and thus I would prefer that one.
>>>
>>>> Instead, we have to make all that fancy stuff
>>>> with VAs <-> device-X and have that device-X driver live out of drivers/xen
>>>> as it is not a Xen specific driver?
>>> That would be my preference if feasible, simply because it can be
>>> reused by other use-cases that need to create dma-bufs in user-space.
>> There is a use-case I have: a display unit on my target has a DMA
>> controller which can't do scatter-gather, e.g. it only expects a
>> single starting address of the buffer.
>> In order to create a dma-buf from grefs in this case
>> I allocate memory with dma_alloc_xxx and then balloon pages of the
>> buffer and finally map grefs onto this DMA buffer.
>> This way I can give this shared buffer to the display unit as its bus
>> addresses are contiguous.
>>
>> With the proposed solution (gntdev + device-X) I won't be able to achieve
>> this,
>> as I have no control over from where gntdev/balloon drivers get the pages
>> (even more, those can easily be out of DMA address space of the display
>> unit).
>>
>> Thus, even if implemented, I can't use this approach.
>>> In any case I just knew about dma-bufs this morning, there might be
>>> things that I'm missing.
>>>
>>> Roger.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2018-04-19  8:19 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-29 13:19 [PATCH 0/1] drm/xen-zcopy: Add Xen zero-copy helper DRM driver Oleksandr Andrushchenko
2018-03-29 13:19 ` Oleksandr Andrushchenko
2018-03-29 13:19 ` [PATCH 1/1] " Oleksandr Andrushchenko
2018-03-29 13:19 ` Oleksandr Andrushchenko
2018-03-29 13:19   ` Oleksandr Andrushchenko
2018-04-03  9:47   ` Daniel Vetter
2018-04-03  9:47   ` Daniel Vetter
2018-04-03  9:47     ` Daniel Vetter
2018-04-06 11:25     ` Oleksandr Andrushchenko
2018-04-06 11:25     ` Oleksandr Andrushchenko
2018-04-06 11:25       ` Oleksandr Andrushchenko
2018-04-09  8:27       ` Daniel Vetter
2018-04-09  8:27         ` Daniel Vetter
2018-04-09  8:27       ` Daniel Vetter
2018-04-16 14:33 ` [PATCH 0/1] " Oleksandr Andrushchenko
2018-04-16 19:29   ` Dongwon Kim
2018-04-16 19:29   ` Dongwon Kim
2018-04-16 19:29     ` Dongwon Kim
2018-04-17  7:59     ` Daniel Vetter
2018-04-17  7:59     ` Daniel Vetter
2018-04-17  7:59       ` Daniel Vetter
2018-04-17  8:19       ` Oleksandr Andrushchenko
2018-04-17  8:19       ` Oleksandr Andrushchenko
2018-04-17  8:19         ` Oleksandr Andrushchenko
2018-04-17 20:57       ` Dongwon Kim
2018-04-17 20:57       ` Dongwon Kim
2018-04-18  6:38         ` Oleksandr Andrushchenko
2018-04-18  7:35           ` Roger Pau Monné
2018-04-18  7:35           ` [Xen-devel] " Roger Pau Monné
2018-04-18  7:35             ` Roger Pau Monné
2018-04-18  8:01             ` Oleksandr Andrushchenko
2018-04-18  8:01             ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-18  8:01               ` Oleksandr Andrushchenko
2018-04-18 10:10               ` Roger Pau Monné
2018-04-18 10:10               ` [Xen-devel] " Roger Pau Monné
2018-04-18 10:10                 ` Roger Pau Monné
2018-04-18 10:18                 ` Paul Durrant
2018-04-18 10:21                   ` Oleksandr Andrushchenko
2018-04-18 10:21                     ` Oleksandr Andrushchenko
2018-04-18 10:23                     ` Paul Durrant
2018-04-18 10:31                       ` Oleksandr Andrushchenko
2018-04-18 10:31                       ` Oleksandr Andrushchenko
2018-04-18 10:23                     ` Paul Durrant
2018-04-18 10:21                   ` Oleksandr Andrushchenko
2018-04-18 10:39                   ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-18 10:39                     ` Oleksandr Andrushchenko
2018-04-18 10:55                     ` Roger Pau Monné
2018-04-18 10:55                     ` [Xen-devel] " Roger Pau Monné
2018-04-18 12:42                       ` Oleksandr Andrushchenko
2018-04-18 16:01                         ` Dongwon Kim
2018-04-18 16:01                           ` Dongwon Kim
2018-04-19  8:19                           ` Oleksandr Andrushchenko
2018-04-19  8:19                           ` Oleksandr Andrushchenko [this message]
2018-04-19  8:19                             ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-18 16:01                         ` Dongwon Kim
2018-04-18 12:42                       ` Oleksandr Andrushchenko
2018-04-20  7:22                       ` Daniel Vetter
2018-04-20  7:22                       ` [Xen-devel] " Daniel Vetter
2018-04-20  7:22                         ` Daniel Vetter
2018-04-18 10:39                   ` Oleksandr Andrushchenko
2018-04-18 10:18                 ` Paul Durrant
2018-04-20  7:19                 ` [Xen-devel] " Daniel Vetter
2018-04-20 11:25                   ` Oleksandr Andrushchenko
2018-04-20 11:25                   ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-20 11:25                     ` Oleksandr Andrushchenko
2018-04-23 11:52                     ` Wei Liu
2018-04-23 12:10                       ` Oleksandr Andrushchenko
2018-04-23 12:10                         ` Oleksandr Andrushchenko
2018-04-23 22:41                         ` Boris Ostrovsky
2018-04-23 22:41                         ` [Xen-devel] " Boris Ostrovsky
2018-04-24  5:43                           ` Oleksandr Andrushchenko
2018-04-24  5:43                           ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-24  5:43                             ` Oleksandr Andrushchenko
2018-04-24  7:51                             ` Juergen Gross
2018-04-24  8:07                               ` Oleksandr Andrushchenko
2018-04-24  8:07                               ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-24  8:07                                 ` Oleksandr Andrushchenko
2018-04-24  8:40                                 ` Juergen Gross
2018-04-24  9:03                                   ` Oleksandr Andrushchenko
2018-04-24  9:03                                     ` Oleksandr Andrushchenko
2018-04-24  9:08                                     ` Juergen Gross
2018-04-24  9:13                                       ` Oleksandr Andrushchenko
2018-04-24  9:13                                       ` Oleksandr Andrushchenko
2018-04-24 10:01                                       ` [Xen-devel] " Wei Liu
2018-04-24 10:14                                         ` Oleksandr Andrushchenko
2018-04-24 10:14                                         ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-24 10:24                                           ` Juergen Gross
2018-04-24 10:24                                           ` [Xen-devel] " Juergen Gross
2018-04-24 10:01                                       ` Wei Liu
2018-04-24  9:08                                     ` Juergen Gross
2018-04-24  9:03                                   ` Oleksandr Andrushchenko
2018-04-24  8:40                                 ` Juergen Gross
2018-04-24  7:51                             ` Juergen Gross
2018-04-24 11:54                         ` Daniel Vetter
2018-04-24 11:54                         ` [Xen-devel] " Daniel Vetter
2018-04-24 11:54                           ` Daniel Vetter
2018-04-24 11:59                           ` Oleksandr Andrushchenko
2018-04-24 20:35                             ` Dongwon Kim
2018-04-24 20:35                             ` [Xen-devel] " Dongwon Kim
2018-04-24 20:35                               ` Dongwon Kim
2018-04-25  6:07                               ` Oleksandr Andrushchenko
2018-04-25  6:34                                 ` Daniel Vetter
2018-04-25  6:34                                 ` [Xen-devel] " Daniel Vetter
2018-04-25  6:34                                   ` Daniel Vetter
2018-04-25 17:16                                   ` Dongwon Kim
2018-04-25 17:16                                     ` Dongwon Kim
2018-04-27  6:54                                     ` Oleksandr Andrushchenko
2018-04-27  6:54                                     ` [Xen-devel] " Oleksandr Andrushchenko
2018-04-27  6:54                                       ` Oleksandr Andrushchenko
2018-04-25 17:16                                   ` Dongwon Kim
2018-04-25  6:07                               ` Oleksandr Andrushchenko
2018-04-25  6:12                               ` [Xen-devel] " Juergen Gross
2018-04-30 18:43                                 ` Dongwon Kim
2018-04-30 18:43                                 ` Dongwon Kim
2018-04-25  6:12                               ` Juergen Gross
2018-04-24 11:59                           ` Oleksandr Andrushchenko
2018-04-23 12:10                       ` Oleksandr Andrushchenko
2018-04-23 11:52                     ` Wei Liu
2018-04-20  7:19                 ` Daniel Vetter
2018-04-18 17:01           ` Dongwon Kim
2018-04-18 17:01           ` Dongwon Kim
2018-04-18 17:01             ` Dongwon Kim
2018-04-19  8:14             ` Oleksandr Andrushchenko
2018-04-19  8:14             ` Oleksandr Andrushchenko
2018-04-19  8:14               ` Oleksandr Andrushchenko
2018-04-19 17:55               ` Dongwon Kim
2018-04-19 17:55               ` Dongwon Kim
2018-04-19 17:55                 ` Dongwon Kim
2018-04-18  6:38         ` Oleksandr Andrushchenko
2018-04-16 14:33 ` Oleksandr Andrushchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b18acfeb-64fc-74ff-1ac1-3b8c6da2b73b@gmail.com \
    --to=andr2000@gmail.com \
    --cc=Artem_Mygaiev@epam.com \
    --cc=Oleksandr_Andrushchenko@epam.com \
    --cc=Paul.Durrant@citrix.com \
    --cc=airlied@linux.ie \
    --cc=boris.ostrovsky@oracle.com \
    --cc=daniel.vetter@intel.com \
    --cc=dongwon.kim@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jgross@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mateuszx.potrola@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.