linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Sumit Semwal <sumit.semwal@linaro.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	DRI mailing list <dri-devel@lists.freedesktop.org>,
	Linaro MM SIG Mailman List <linaro-mm-sig@lists.linaro.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Linaro Kernel Mailman List <linaro-kernel@lists.linaro.org>,
	Tomasz Stanislawski <stanislawski.tomasz@googlemail.com>,
	Rob Clark <robdclark@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Robin Murphy <robin.murphy@arm.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms
Date: Thu, 29 Jan 2015 15:47:18 +0000	[thread overview]
Message-ID: <20150129154718.GB26493@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <CAO_48GEOQ1pBwirgEWeVVXW-iOmaC=Xerr2VyYYz9t1QDXgVsw@mail.gmail.com>

On Thu, Jan 29, 2015 at 09:00:11PM +0530, Sumit Semwal wrote:
> So, short answer is, it is left to the exporter to decide. The dma-buf
> framework should not even attempt to decide or enforce any of the
> above.
> 
> At each dma_buf_attach(), there's a callback to the exporter, where
> the exporter can decide, if it intends to handle these kind of cases,
> on the best way forward.
> 
> The exporter might, for example, decide to migrate backing storage,

That's a decision which the exporter can not take.  Think about it...

If subsystem Y has mapped the buffer, it could be accessing the buffer's
backing storage at the same time that subsystem Z tries to attach to the
buffer.

Once the buffer has been exported to another user, the exporter has
effectively lost control over mediating accesses to that buffer.

All that it can do with the way the dma-buf API is today is to allocate
a _different_ scatter list pointing at the same backing storage which
satisfies the segment size and number of segments, etc.

There's also another issue which you haven't addressed.  What if several
attachments result in lowering max_segment_size and max_segment_count
such that:

	max_segment_size * max_segment_count < dmabuf->size

but individually, the attachments allow dmabuf->size to be represented
as a scatterlist?

If an exporter were to take notice of the max_segment_size and
max_segment_count, the resulting buffer is basically unrepresentable
as a scatterlist.

> > Please consider the possible sequences of use (such as the scenario
> > above) when creating or augmenting an API.
> >
> 
> I tried to think of the scenarios I could think of, but If you still
> feel this approach doesn't help with your concerns, I'll graciously
> accept advice to improve it.

See the new one above :)

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

  reply	other threads:[~2015-01-29 15:47 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-27  8:25 [RFCv3 1/2] device: add dma_params->max_segment_count Sumit Semwal
2015-01-27  8:25 ` [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms Sumit Semwal
2015-01-29 14:16   ` Maarten Lankhorst
2015-01-29 14:39   ` Russell King - ARM Linux
2015-01-29 15:30     ` Sumit Semwal
2015-01-29 15:47       ` Russell King - ARM Linux [this message]
2015-01-29 16:55         ` Sumit Semwal
2015-01-29 18:52         ` Rob Clark
2015-01-29 19:26           ` Russell King - ARM Linux
2015-01-29 22:18             ` Rob Clark
2015-01-29 22:31               ` Russell King - ARM Linux
2015-01-29 23:19                 ` Rob Clark
2015-02-02 16:54               ` Daniel Vetter
2015-02-02 20:30                 ` Rob Clark
2015-02-02 21:46                   ` Russell King - ARM Linux
2015-02-02 22:36                     ` Rob Clark
2015-02-03  7:50                       ` Daniel Vetter
2015-02-03  7:46                     ` Daniel Vetter
2015-02-03  7:48                   ` Daniel Vetter
2015-02-03 12:28                     ` Russell King - ARM Linux
2015-02-03 13:00                       ` Daniel Vetter
2015-02-03 13:28                       ` Christian Gmeiner
2015-02-03 14:32                         ` Russell King - ARM Linux
2015-02-03 14:25                       ` Rob Clark
2015-02-03 14:04                     ` Rob Clark
2015-02-03 14:17                       ` Arnd Bergmann
2015-02-03 14:41                         ` Russell King - ARM Linux
2015-02-03 14:52                           ` Arnd Bergmann
2015-02-03 15:22                             ` Russell King - ARM Linux
2015-02-03 15:31                               ` [Linaro-mm-sig] " Arnd Bergmann
2015-02-03 15:54                                 ` Russell King - ARM Linux
2015-02-03 16:12                                   ` Arnd Bergmann
2015-02-03 16:22                                     ` Rob Clark
2015-02-03 16:36                                       ` Arnd Bergmann
2015-02-03 20:04                                         ` Daniel Vetter
2015-02-03 21:42                                           ` Arnd Bergmann
2015-02-03 22:07                                             ` Daniel Vetter
2015-02-04  0:14                                             ` Russell King - ARM Linux
2015-02-03 17:01                                       ` Russell King - ARM Linux
2015-02-03 16:58                                     ` Russell King - ARM Linux
2015-02-03 17:35                                       ` Rob Clark
2015-02-03 20:08                                         ` Daniel Vetter
2015-02-03 21:44                                         ` Arnd Bergmann
2015-02-03 15:25                             ` Rob Clark
2015-02-03 15:19                           ` Rob Clark
2015-02-03 14:37                       ` Russell King - ARM Linux
2015-02-03 14:44                         ` Rob Clark
2015-02-03 14:58                           ` Russell King - ARM Linux
2015-02-02  5:53             ` Sumit Semwal
2015-02-11  8:28   ` Marek Szyprowski
2015-02-11 11:12     ` Russell King - ARM Linux
2015-02-11 11:23       ` Rob Clark
2015-02-11 12:56         ` Daniel Vetter
2015-02-11 13:30           ` Rob Clark
2015-02-11 12:20       ` Marek Szyprowski
2015-02-11 16:23         ` Russell King - ARM Linux
2015-05-05 14:41           ` Sumit Semwal
2015-06-03  6:39             ` [Linaro-mm-sig] " Hans Verkuil
2015-06-03  8:41               ` Russell King - ARM Linux
2015-06-03  9:37                 ` Hans Verkuil
2015-06-04  5:24                   ` Sumit Semwal
2015-01-28 14:09 ` [RFCv3 1/2] device: add dma_params->max_segment_count Marek Szyprowski
2015-06-03  6:13 ` [Linaro-mm-sig] " Hans Verkuil

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=20150129154718.GB26493@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=m.szyprowski@samsung.com \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=stanislawski.tomasz@googlemail.com \
    --cc=sumit.semwal@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).