From: Thomas Hellstrom <thellstrom@vmware.com>
To: Michael Spang <spang@chromium.org>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>
Subject: Re: about mmap dma-buf and sync
Date: Tue, 25 Aug 2015 07:25:47 +0200 [thread overview]
Message-ID: <55DBFC5B.2050004@vmware.com> (raw)
In-Reply-To: <CAC5F_1=E1rFf6V-wtqYk6RR6Q7r=ciPzYAU6tOsGoMSPkZkf0w@mail.gmail.com>
Hi,
On 08/24/2015 07:56 PM, Michael Spang wrote:
> On Mon, Aug 24, 2015 at 1:42 PM, Thomas Hellstrom <thellstrom@vmware.com> wrote:
>> On 08/24/2015 07:12 PM, Daniel Stone wrote:
>>> Hi,
>>>
>>> On 24 August 2015 at 18:10, Thomas Hellstrom <thellstrom@vmware.com> wrote:
>>>> On 08/24/2015 07:04 PM, Daniel Stone wrote:
>>>>> On 24 August 2015 at 17:56, Thomas Hellstrom <thellstrom@vmware.com> wrote:
>>>>>> On 08/24/2015 05:52 PM, Daniel Stone wrote:
>>>>>>> I still don't think this ameliorates the need for batching: consider
>>>>>>> the case where you update two disjoint screen regions and want them
>>>>>>> both flushed. Either you issue two separate sync calls (which can be
>>>>>>> disadvantageous performance-wise on some hardware / setups), or you
>>>>>>> accumulate the regions and only flush later. So either two ioctls (one
>>>>>>> in the style of dirtyfb and one to perform the sync/flush; you can
>>>>>>> shortcut to assume the full buffer was damaged if the former is
>>>>>>> missing), or one like this:
>>>>>>>
>>>>>>> struct dma_buf_sync_2d {
>>>>>>> enum dma_buf_sync_flags flags;
>>>>>>>
>>>>>>> __u64 stride_bytes;
>>>>>>> __u32 bytes_per_pixel;
>>>>>>> __u32 num_regions;
>>>>>>>
>>>>>>> struct {
>>>>>>> __u64 x;
>>>>>>> __u64 y;
>>>>>>> __u64 width;
>>>>>>> __u64 height;
>>>>>>> } regions[];
>>>>>>> };
>>>>>> Fine with me, although perhaps bytes_per_pixel is a bit redundant?
>>>>> Redundant how? It's not implicit in stride.
>>>> For flushing purposes, isn't it possible to cover all cases by assuming
>>>> bytes_per_pixel=1? Not that it matters much.
>>> Sure, though in that case best to replace x with line_byte_offset or
>>> something, because otherwise I guarantee you everyone will get it
>>> wrong, and it'll be a pain to track down. Like how I managed to
>>> misread it now. :)
>> OK, yeah you have a point. IMO let's go for your proposal.
>>
>> Tiago, is this OK with you?
> Is there any obstacle to making the above API a new syscall?
I think that whether this API can be accepted as a syscall or not is
really up to Dave and in the end Linus.
What speaks against is that it's not applicable to all file types, only
dma-bufs and also that we might want to extend
it in the future.
>
> The reason we have issues with ioctls is because it's not possible to
> whitelist them properly with seccomp BPF - there's no single namespace
> for ioctls.
>
> If this API is merged as a ioctl, we may not be able to actually use
> it. Which is a bit unfortunate when it has been proposed with the
> chrome renderer use case in mind.
I don't think mmap() on dma-bufs can be accepted as a _generic_ API
without a mandatory sync mechanism, and I think there is a need to
specify a sync api regardless of who is the first user.
Thanks,
Thomas
>
> Michael
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-08-25 5:25 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <55D50442.5080102@intel.com>
2015-08-20 6:48 ` about mmap dma-buf and sync Thomas Hellstrom
2015-08-20 14:33 ` Rob Clark
2015-08-20 19:27 ` Thomas Hellstrom
2015-08-20 19:32 ` Thomas Hellstrom
2015-08-21 16:42 ` Rob Clark
2015-08-20 14:53 ` Jerome Glisse
2015-08-20 19:39 ` Thomas Hellstrom
2015-08-20 20:34 ` Jerome Glisse
2015-08-21 5:25 ` Thomas Hellstrom
2015-08-21 10:28 ` Lucas Stach
2015-08-21 10:51 ` Thomas Hellstrom
2015-08-21 13:32 ` Jerome Glisse
2015-08-21 14:15 ` Thomas Hellstrom
2015-08-21 16:00 ` Jerome Glisse
2015-08-21 22:00 ` Thomas Hellstrom
2015-08-24 1:41 ` Jerome Glisse
2015-08-24 9:59 ` Thomas Hellstrom
2015-08-21 23:06 ` Tiago Vignatti
2015-08-24 9:50 ` Thomas Hellstrom
2015-08-24 15:52 ` Daniel Stone
2015-08-24 16:56 ` Thomas Hellstrom
2015-08-24 17:04 ` Daniel Stone
2015-08-24 17:10 ` Thomas Hellstrom
2015-08-24 17:12 ` Daniel Stone
2015-08-24 17:42 ` Thomas Hellstrom
2015-08-24 17:56 ` Michael Spang
2015-08-25 5:25 ` Thomas Hellstrom [this message]
2015-08-24 18:01 ` Tiago Vignatti
2015-08-24 23:03 ` Tiago Vignatti
2015-08-25 9:02 ` Daniel Vetter
2015-08-25 9:30 ` Thomas Hellstrom
2015-08-25 16:14 ` Tiago Vignatti
2015-08-26 0:02 ` [PATCH v4] dma-buf: Add ioctls to allow userspace to flush Tiago Vignatti
2015-08-26 6:49 ` Thomas Hellstrom
2015-08-26 12:10 ` Daniel Vetter
2015-08-26 12:28 ` Thomas Hellstrom
2015-08-26 12:58 ` Daniel Vetter
2015-08-26 14:32 ` Tiago Vignatti
2015-08-26 14:50 ` Thomas Hellstrom
2015-08-26 14:51 ` Daniel Vetter
2015-08-26 14:58 ` Tiago Vignatti
2015-08-26 15:37 ` Thomas Hellstrom
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=55DBFC5B.2050004@vmware.com \
--to=thellstrom@vmware.com \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=spang@chromium.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.