From: Mark Salter <msalter@redhat.com> To: Alexander Duyck <alexander.h.duyck@intel.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: brouer@redhat.com, davem@davemloft.net, linux-c6x-dev@linux-c6x.org, Aurelien Jacquiot <a-jacquiot@ti.com> Subject: Re: [net-next PATCH RFC 07/26] arch/c6x: Add option to skip sync on DMA map and unmap Date: Fri, 28 Oct 2016 10:59:00 -0400 [thread overview] Message-ID: <1477666740.31844.9.camel@redhat.com> (raw) In-Reply-To: <20161024120503.16276.44357.stgit@ahduyck-blue-test.jf.intel.com> On Mon, 2016-10-24 at 08:05 -0400, Alexander Duyck wrote: > This change allows us to pass DMA_ATTR_SKIP_CPU_SYNC which allows us to > avoid invoking cache line invalidation if the driver will just handle it > later via a sync_for_cpu or sync_for_device call. > > Cc: Mark Salter <msalter@redhat.com> > Cc: Aurelien Jacquiot <a-jacquiot@ti.com> > Cc: linux-c6x-dev@linux-c6x.org > Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> > --- Acked-by: Mark Salter <msalter@redhat.com> > arch/c6x/kernel/dma.c | 16 +++++++++++----- > 1 file changed, 11 insertions(+), 5 deletions(-) > > diff --git a/arch/c6x/kernel/dma.c b/arch/c6x/kernel/dma.c > index db4a6a3..d28df74 100644 > --- a/arch/c6x/kernel/dma.c > +++ b/arch/c6x/kernel/dma.c > @@ -42,14 +42,17 @@ static dma_addr_t c6x_dma_map_page(struct device *dev, struct page *page, > { > dma_addr_t handle = virt_to_phys(page_address(page) + offset); > > - c6x_dma_sync(handle, size, dir); > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(handle, size, dir); > + > return handle; > } > > static void c6x_dma_unmap_page(struct device *dev, dma_addr_t handle, > size_t size, enum dma_data_direction dir, unsigned long attrs) > { > - c6x_dma_sync(handle, size, dir); > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(handle, size, dir); > } > > static int c6x_dma_map_sg(struct device *dev, struct scatterlist *sglist, > @@ -60,7 +63,8 @@ static int c6x_dma_map_sg(struct device *dev, struct scatterlist *sglist, > > for_each_sg(sglist, sg, nents, i) { > sg->dma_address = sg_phys(sg); > - c6x_dma_sync(sg->dma_address, sg->length, dir); > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(sg->dma_address, sg->length, dir); > } > > return nents; > @@ -72,8 +76,10 @@ static void c6x_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, > struct scatterlist *sg; > int i; > > - for_each_sg(sglist, sg, nents, i) > - c6x_dma_sync(sg_dma_address(sg), sg->length, dir); > + for_each_sg(sglist, sg, nents, i) { > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(sg_dma_address(sg), sg->length, dir); > + } > > } > >
WARNING: multiple messages have this Message-ID (diff)
From: Mark Salter <msalter@redhat.com> To: Alexander Duyck <alexander.h.duyck@intel.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: brouer@redhat.com, davem@davemloft.net, linux-c6x-dev@linux-c6x.org, Aurelien Jacquiot <a-jacquiot@ti.com> Subject: Re: [net-next PATCH RFC 07/26] arch/c6x: Add option to skip sync on DMA map and unmap Date: Fri, 28 Oct 2016 10:59:00 -0400 [thread overview] Message-ID: <1477666740.31844.9.camel@redhat.com> (raw) In-Reply-To: <20161024120503.16276.44357.stgit@ahduyck-blue-test.jf.intel.com> On Mon, 2016-10-24 at 08:05 -0400, Alexander Duyck wrote: > This change allows us to pass DMA_ATTR_SKIP_CPU_SYNC which allows us to > avoid invoking cache line invalidation if the driver will just handle it > later via a sync_for_cpu or sync_for_device call. > > Cc: Mark Salter <msalter@redhat.com> > Cc: Aurelien Jacquiot <a-jacquiot@ti.com> > Cc: linux-c6x-dev@linux-c6x.org > Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> > --- Acked-by: Mark Salter <msalter@redhat.com> > A arch/c6x/kernel/dma.c |A A A 16 +++++++++++----- > A 1 file changed, 11 insertions(+), 5 deletions(-) > > diff --git a/arch/c6x/kernel/dma.c b/arch/c6x/kernel/dma.c > index db4a6a3..d28df74 100644 > --- a/arch/c6x/kernel/dma.c > +++ b/arch/c6x/kernel/dma.c > @@ -42,14 +42,17 @@ static dma_addr_t c6x_dma_map_page(struct device *dev, struct page *page, > A { > A dma_addr_t handle = virt_to_phys(page_address(page) + offset); > A > - c6x_dma_sync(handle, size, dir); > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(handle, size, dir); > + > A return handle; > A } > A > A static void c6x_dma_unmap_page(struct device *dev, dma_addr_t handle, > A size_t size, enum dma_data_direction dir, unsigned long attrs) > A { > - c6x_dma_sync(handle, size, dir); > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(handle, size, dir); > A } > A > A static int c6x_dma_map_sg(struct device *dev, struct scatterlist *sglist, > @@ -60,7 +63,8 @@ static int c6x_dma_map_sg(struct device *dev, struct scatterlist *sglist, > A > A for_each_sg(sglist, sg, nents, i) { > A sg->dma_address = sg_phys(sg); > - c6x_dma_sync(sg->dma_address, sg->length, dir); > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(sg->dma_address, sg->length, dir); > A } > A > A return nents; > @@ -72,8 +76,10 @@ static void c6x_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, > A struct scatterlist *sg; > A int i; > A > - for_each_sg(sglist, sg, nents, i) > - c6x_dma_sync(sg_dma_address(sg), sg->length, dir); > + for_each_sg(sglist, sg, nents, i) { > + if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC)) > + c6x_dma_sync(sg_dma_address(sg), sg->length, dir); > + } > A > A } > A > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-10-28 14:59 UTC|newest] Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-10-24 12:04 [net-next PATCH RFC 00/26] Add support for DMA writable pages being writable by the network stack Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 12:04 ` [net-next PATCH RFC 01/26] swiotlb: Drop unused function swiotlb_map_sg Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 18:10 ` Konrad Rzeszutek Wilk 2016-10-24 18:10 ` Konrad Rzeszutek Wilk 2016-10-24 12:04 ` [net-next PATCH RFC 02/26] swiotlb: Add support for DMA_ATTR_SKIP_CPU_SYNC Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 18:09 ` Konrad Rzeszutek Wilk 2016-10-24 18:09 ` Konrad Rzeszutek Wilk 2016-10-24 19:16 ` Alexander Duyck 2016-10-24 19:16 ` Alexander Duyck 2016-10-25 1:22 ` Konrad Rzeszutek Wilk 2016-10-24 12:04 ` [net-next PATCH RFC 03/26] arch/arc: Add option to skip sync on DMA mapping Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 12:04 ` [net-next PATCH RFC 04/26] arch/arm: Add option to skip sync on DMA map and unmap Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-31 10:20 ` Russell King - ARM Linux 2016-10-31 10:20 ` Russell King - ARM Linux 2016-10-31 15:26 ` Alexander Duyck 2016-10-31 15:26 ` Alexander Duyck 2016-10-24 12:04 ` [net-next PATCH RFC 05/26] arch/avr32: Add option to skip sync on DMA map Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 18:27 ` Hans-Christian Noren Egtvedt 2016-10-24 18:27 ` Hans-Christian Noren Egtvedt 2016-10-24 12:04 ` [net-next PATCH RFC 06/26] arch/blackfin: " Alexander Duyck 2016-10-24 12:04 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 07/26] arch/c6x: Add option to skip sync on DMA map and unmap Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-28 14:59 ` Mark Salter [this message] 2016-10-28 14:59 ` Mark Salter 2016-10-24 12:05 ` [net-next PATCH RFC 08/26] arch/frv: Add option to skip sync on DMA map Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 09/26] arch/hexagon: Add option to skip DMA sync as a part of mapping Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 10/26] arch/m68k: " Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 11/26] arch/metag: Add option to skip DMA sync as a part of map and unmap Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 12/26] arch/microblaze: " Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 13/26] arch/mips: " Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 14/26] arch/nios2: " Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 15/26] arch/openrisc: Add option to skip DMA sync as a part of mapping Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 16/26] arch/parisc: Add option to skip DMA sync as a part of map and unmap Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:05 ` [net-next PATCH RFC 17/26] arch/powerpc: Add option to skip DMA sync as a part of mapping Alexander Duyck 2016-10-24 12:05 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 18/26] arch/sh: " Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 19/26] arch/sparc: Add option to skip DMA sync as a part of map and unmap Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 18:27 ` David Miller 2016-10-24 18:27 ` David Miller 2016-10-24 18:27 ` David Miller 2016-10-24 19:24 ` Alexander Duyck 2016-10-24 19:24 ` Alexander Duyck 2016-10-24 19:24 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 20/26] arch/tile: " Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 21/26] arch/xtensa: Add option to skip DMA sync as a part of mapping Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 22/26] dma: Add calls for dma_map_page_attrs and dma_unmap_page_attrs Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 23/26] mm: Add support for releasing multiple instances of a page Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 24/26] igb: Update driver to make use of DMA_ATTR_SKIP_CPU_SYNC Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 25/26] igb: Update code to better handle incrementing page count Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck 2016-10-24 12:06 ` [net-next PATCH RFC 26/26] igb: Revert "igb: Revert support for build_skb in igb" Alexander Duyck 2016-10-24 12:06 ` Alexander Duyck
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=1477666740.31844.9.camel@redhat.com \ --to=msalter@redhat.com \ --cc=a-jacquiot@ti.com \ --cc=alexander.h.duyck@intel.com \ --cc=brouer@redhat.com \ --cc=davem@davemloft.net \ --cc=linux-c6x-dev@linux-c6x.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=netdev@vger.kernel.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: linkBe 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.