From: Liam Mark <lmark@codeaurora.org>
To: "Andrew F. Davis" <afd@ti.com>
Cc: "Laura Abbott" <labbott@redhat.com>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Arve Hjønnevåg" <arve@android.com>,
devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 13/14] staging: android: ion: Do not sync CPU cache on map/unmap
Date: Mon, 14 Jan 2019 09:13:30 -0800 (PST) [thread overview]
Message-ID: <alpine.DEB.2.10.1901140910130.23879@lmark-linux.qualcomm.com> (raw)
In-Reply-To: <20190111180523.27862-14-afd@ti.com>
On Fri, 11 Jan 2019, Andrew F. Davis wrote:
> Buffers may not be mapped from the CPU so skip cache maintenance here.
> Accesses from the CPU to a cached heap should be bracketed with
> {begin,end}_cpu_access calls so maintenance should not be needed anyway.
>
> Signed-off-by: Andrew F. Davis <afd@ti.com>
> ---
> drivers/staging/android/ion/ion.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
> index 14e48f6eb734..09cb5a8e2b09 100644
> --- a/drivers/staging/android/ion/ion.c
> +++ b/drivers/staging/android/ion/ion.c
> @@ -261,8 +261,8 @@ static struct sg_table *ion_map_dma_buf(struct dma_buf_attachment *attachment,
>
> table = a->table;
>
> - if (!dma_map_sg(attachment->dev, table->sgl, table->nents,
> - direction))
> + if (!dma_map_sg_attrs(attachment->dev, table->sgl, table->nents,
> + direction, DMA_ATTR_SKIP_CPU_SYNC))
Unfortunately I don't think you can do this for a couple reasons.
You can't rely on {begin,end}_cpu_access calls to do cache maintenance.
If the calls to {begin,end}_cpu_access were made before the call to
dma_buf_attach then there won't have been a device attached so the calls
to {begin,end}_cpu_access won't have done any cache maintenance.
Also ION no longer provides DMA ready memory, so if you are not doing CPU
access then there is no requirement (that I am aware of) for you to call
{begin,end}_cpu_access before passing the buffer to the device and if this
buffer is cached and your device is not IO-coherent then the cache maintenance
in ion_map_dma_buf and ion_unmap_dma_buf is required.
> return ERR_PTR(-ENOMEM);
>
> return table;
> @@ -272,7 +272,8 @@ static void ion_unmap_dma_buf(struct dma_buf_attachment *attachment,
> struct sg_table *table,
> enum dma_data_direction direction)
> {
> - dma_unmap_sg(attachment->dev, table->sgl, table->nents, direction);
> + dma_unmap_sg_attrs(attachment->dev, table->sgl, table->nents,
> + direction, DMA_ATTR_SKIP_CPU_SYNC);
> }
>
> static int ion_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma)
> --
> 2.19.1
>
> _______________________________________________
> devel mailing list
> devel@linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2019-01-14 17:13 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-11 18:05 [PATCH 00/14] Misc ION cleanups and adding unmapped heap Andrew F. Davis
2019-01-11 18:05 ` [PATCH 01/14] staging: android: ion: Add proper header information Andrew F. Davis
2019-01-11 18:05 ` [PATCH 02/14] staging: android: ion: Remove empty ion_ioctl_dir() function Andrew F. Davis
2019-01-11 18:05 ` [PATCH 03/14] staging: android: ion: Merge ion-ioctl.c into ion.c Andrew F. Davis
2019-01-11 18:05 ` [PATCH 04/14] staging: android: ion: Remove leftover comment Andrew F. Davis
2019-01-11 18:05 ` [PATCH 05/14] staging: android: ion: Remove struct ion_platform_heap Andrew F. Davis
2019-01-11 18:05 ` [PATCH 06/14] staging: android: ion: Fixup some white-space issues Andrew F. Davis
2019-01-11 18:05 ` [PATCH 07/14] staging: android: ion: Sync comment docs with struct ion_buffer Andrew F. Davis
2019-01-11 18:05 ` [PATCH 08/14] staging: android: ion: Remove base from ion_carveout_heap Andrew F. Davis
2019-01-11 18:05 ` [PATCH 09/14] staging: android: ion: Remove base from ion_chunk_heap Andrew F. Davis
2019-01-11 18:05 ` [PATCH 10/14] staging: android: ion: Remove unused headers Andrew F. Davis
2019-01-11 18:05 ` [PATCH 11/14] staging: android: ion: Allow heap name to be null Andrew F. Davis
2019-01-16 15:28 ` Brian Starkey
2019-01-16 17:12 ` Andrew F. Davis
2019-01-18 19:53 ` Laura Abbott
2019-01-21 14:30 ` Andrew F. Davis
2019-01-11 18:05 ` [PATCH 12/14] staging: android: ion: Declare helpers for carveout and chunk heaps Andrew F. Davis
2019-01-18 9:59 ` Greg Kroah-Hartman
2019-01-18 16:09 ` Andrew F. Davis
2019-01-18 19:54 ` Laura Abbott
2019-01-11 18:05 ` [PATCH 13/14] staging: android: ion: Do not sync CPU cache on map/unmap Andrew F. Davis
2019-01-14 17:13 ` Liam Mark [this message]
2019-01-15 15:44 ` Andrew F. Davis
2019-01-15 17:45 ` Liam Mark
2019-01-15 18:38 ` Andrew F. Davis
2019-01-15 18:40 ` Andrew F. Davis
2019-01-16 15:19 ` Brian Starkey
2019-01-16 17:05 ` Andrew F. Davis
2019-01-16 22:54 ` Liam Mark
2019-01-17 16:25 ` Andrew F. Davis
2019-01-18 1:11 ` Liam Mark
2019-01-18 17:16 ` Andrew F. Davis
2019-01-21 11:22 ` Brian Starkey
2019-01-21 21:21 ` Andrew F. Davis
2019-01-22 17:33 ` Sumit Semwal
2019-01-23 16:51 ` Andrew F. Davis
2019-01-23 17:11 ` Brian Starkey
2019-01-24 16:04 ` Andrew F. Davis
2019-01-24 16:44 ` Brian Starkey
2019-02-19 21:37 ` Laura Abbott
[not found] ` <CAO_48GHZPkE8Or_dB6CVMi5Jv5eufE_Z36MT7ztJwTqTzkTpKA@mail.gmail.com>
2019-01-23 17:09 ` Andrew F. Davis
2019-01-22 22:56 ` Liam Mark
2019-01-21 20:11 ` Liam Mark
2019-01-15 19:05 ` Laura Abbott
2019-01-16 16:17 ` Andrew F. Davis
2019-01-16 22:48 ` Liam Mark
2019-01-17 16:13 ` Andrew F. Davis
2019-01-18 1:04 ` Liam Mark
2019-01-18 16:50 ` Andrew F. Davis
2019-01-18 21:43 ` Liam Mark
2019-01-21 15:15 ` Andrew F. Davis
2019-01-21 20:04 ` Liam Mark
2019-01-18 20:31 ` Laura Abbott
2019-01-18 20:43 ` Andrew F. Davis
2019-01-18 20:46 ` Laura Abbott
2019-01-19 10:11 ` Christoph Hellwig
2019-01-17 9:02 ` Christoph Hellwig
2019-01-11 18:05 ` [PATCH 14/14] staging: android: ion: Add UNMAPPED heap type and helper Andrew F. Davis
2019-01-15 2:32 ` Laura Abbott
2019-01-15 15:58 ` Andrew F. Davis
2019-01-15 18:43 ` Laura Abbott
2019-01-15 19:11 ` Laura Abbott
2019-01-16 16:18 ` Andrew F. Davis
2019-01-15 2:39 ` [PATCH 00/14] Misc ION cleanups and adding unmapped heap Laura Abbott
2019-01-15 17:47 ` Andrew F. Davis
2019-01-15 18:58 ` Laura Abbott
2019-01-16 16:05 ` Andrew F. Davis
2019-01-18 20:19 ` Laura Abbott
2019-01-21 14:58 ` Andrew F. Davis
2019-01-18 9:56 ` Greg Kroah-Hartman
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=alpine.DEB.2.10.1901140910130.23879@lmark-linux.qualcomm.com \
--to=lmark@codeaurora.org \
--cc=afd@ti.com \
--cc=arve@android.com \
--cc=devel@driverdev.osuosl.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=labbott@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--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).