All of lore.kernel.org
 help / color / mirror / Atom feed
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC][PATCH] add
Date: Thu, 26 Aug 2010 09:53:11 +0000	[thread overview]
Message-ID: <20100826095311.GA13051@pengutronix.de> (raw)
In-Reply-To: <20100826182915S.fujita.tomonori@lab.ntt.co.jp>

On Thu, Aug 26, 2010 at 06:30:02PM +0900, FUJITA Tomonori wrote:
> On Thu, 26 Aug 2010 11:06:20 +0200 (CEST)
> Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> 
> > On Thu, 26 Aug 2010, FUJITA Tomonori wrote:
> > 
> > > On Thu, 26 Aug 2010 09:04:14 +0300
> > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > 
> > > > On Thursday, August 26, 2010 08:40:47 am FUJITA Tomonori wrote:
> > > > > On Fri, 20 Aug 2010 14:50:12 +0300
> > > > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > > > 
> > > > > > On Friday, August 20, 2010 11:35:06 am FUJITA Tomonori wrote:
> > > > > > > On Fri, 20 Aug 2010 11:13:45 +0300
> > > > > > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > > > > > 
> > > > > > > > > > This tric is already used in drivers/staging/dt3155v4l.c
> > > > > > > > > > dt3155_alloc_coherent()/dt3155_free_coherent()
> > > > > > > > > > 
> > > > > > > > > > Here proposed for general use by popular demand from video4linux folks.
> > > > > > > > > > Helps for videobuf-dma-contig framework.
> > > > > > > > > 
> > > > > > > > > What you guys exactly want to do? If you just want to pre-allocate
> > > > > > > > > coherent memory for latter usage,
> > > > > > > > 
> > > > > > > > Yes, just to preallocate not coherent, but rather contiguous memory for latter usage.
> > > > > > > > We use coherent memory because it turns out to be contiguous.
> > > > > > > 
> > > > > > > Hmm, you don't care about coherency? You just need contiguous memory?
> > > > > > 
> > > > > > Yes. We just need contiguous memory. Coherency is important as far as when dma
> > > > > > transfer finishes user land is able to see the new data. Could be done by something like
> > > > > > dma_{,un}map_single()
> > > > > 
> > > > > Then, we should avoid using coherent memory as I exaplained before. In
> > > > > addition, dma_alloc_coherent can't provide large enough contigous
> > > > > memory for some drivers so this patch doesn't help much.
> > > > 
> > > > Please, look at drivers/media/video/videobuf-dma-contig.c. Using coherent memory
> > > > is inavoidable for now, there is no alternative for it for now. The two new functions,
> > > > which I propose are just helpers for those of us who already use coherent memory
> > > > (via videobuf-dma-contig API). May be adding these two functions to 
> > > > drivers/media/video/videobuf-dma-contig.c will be better solution?
> > > 
> > > If you add something to the videobuf-dma-contig API, that's fine by me
> > > because drivers/media/video/videobuf-dma-contig.c uses the own
> > > structure and plays with dma_alloc_coherent. As long as a driver
> > > doesn't touch device->dma_mem directly, it's fine, I think (that is,
> > > dt3155v4l driver is broken). There are already some workarounds for
> > > contigous memory in several drivers anyway.
> > 
> > No, this will not work - this API has to be used from board code and 
> > videobuf can be built modular.
> > 
> > > We will have the proper API for contiguous memory. I don't think that
> > > adding such workaround to the DMA API is a good idea.
> > 
> > We have currently a number of boards broken in the mainline. They must be 
> > fixed for 2.6.36. I don't think the mentioned API will do this for us. So, 
> > as I suggested earlier, we need either this or my patch series
> > 
> > http://thread.gmane.org/gmane.linux.ports.sh.devel/8595
> > 
> > for 2.6.36.
> 
> Why can't you revert a commit that causes the regression?
> 
> The related DMA API wasn't changed in 2.6.36-rc1. The DMA API is not
> responsible for the regression. And the patchset even exnteds the
> definition of the DMA API (dma_declare_coherent_memory). Such change
> shouldn't applied after rc1. I think that DMA-API.txt says that
> dma_declare_coherent_memory() handles coherent memory for a particular
> device. It's not for the API that reserves coherent memory that can be
> used for any device for a single device.
The patch that made the problem obvious for ARM is
309caa9cc6ff39d261264ec4ff10e29489afc8f8 aka v2.6.36-rc1~591^2~2^4~12.
So this went in before v2.6.36-rc1.  One of the "architectures which
similar restrictions" is x86 BTW.

And no, we won't revert 309caa9cc6ff39d261264ec4ff10e29489afc8f8 as it
addresses a hardware restriction.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

WARNING: multiple messages have this Message-ID (diff)
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API
Date: Thu, 26 Aug 2010 11:53:11 +0200	[thread overview]
Message-ID: <20100826095311.GA13051@pengutronix.de> (raw)
In-Reply-To: <20100826182915S.fujita.tomonori@lab.ntt.co.jp>

On Thu, Aug 26, 2010 at 06:30:02PM +0900, FUJITA Tomonori wrote:
> On Thu, 26 Aug 2010 11:06:20 +0200 (CEST)
> Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> 
> > On Thu, 26 Aug 2010, FUJITA Tomonori wrote:
> > 
> > > On Thu, 26 Aug 2010 09:04:14 +0300
> > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > 
> > > > On Thursday, August 26, 2010 08:40:47 am FUJITA Tomonori wrote:
> > > > > On Fri, 20 Aug 2010 14:50:12 +0300
> > > > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > > > 
> > > > > > On Friday, August 20, 2010 11:35:06 am FUJITA Tomonori wrote:
> > > > > > > On Fri, 20 Aug 2010 11:13:45 +0300
> > > > > > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > > > > > 
> > > > > > > > > > This tric is already used in drivers/staging/dt3155v4l.c
> > > > > > > > > > dt3155_alloc_coherent()/dt3155_free_coherent()
> > > > > > > > > > 
> > > > > > > > > > Here proposed for general use by popular demand from video4linux folks.
> > > > > > > > > > Helps for videobuf-dma-contig framework.
> > > > > > > > > 
> > > > > > > > > What you guys exactly want to do? If you just want to pre-allocate
> > > > > > > > > coherent memory for latter usage,
> > > > > > > > 
> > > > > > > > Yes, just to preallocate not coherent, but rather contiguous memory for latter usage.
> > > > > > > > We use coherent memory because it turns out to be contiguous.
> > > > > > > 
> > > > > > > Hmm, you don't care about coherency? You just need contiguous memory?
> > > > > > 
> > > > > > Yes. We just need contiguous memory. Coherency is important as far as when dma
> > > > > > transfer finishes user land is able to see the new data. Could be done by something like
> > > > > > dma_{,un}map_single()
> > > > > 
> > > > > Then, we should avoid using coherent memory as I exaplained before. In
> > > > > addition, dma_alloc_coherent can't provide large enough contigous
> > > > > memory for some drivers so this patch doesn't help much.
> > > > 
> > > > Please, look at drivers/media/video/videobuf-dma-contig.c. Using coherent memory
> > > > is inavoidable for now, there is no alternative for it for now. The two new functions,
> > > > which I propose are just helpers for those of us who already use coherent memory
> > > > (via videobuf-dma-contig API). May be adding these two functions to 
> > > > drivers/media/video/videobuf-dma-contig.c will be better solution?
> > > 
> > > If you add something to the videobuf-dma-contig API, that's fine by me
> > > because drivers/media/video/videobuf-dma-contig.c uses the own
> > > structure and plays with dma_alloc_coherent. As long as a driver
> > > doesn't touch device->dma_mem directly, it's fine, I think (that is,
> > > dt3155v4l driver is broken). There are already some workarounds for
> > > contigous memory in several drivers anyway.
> > 
> > No, this will not work - this API has to be used from board code and 
> > videobuf can be built modular.
> > 
> > > We will have the proper API for contiguous memory. I don't think that
> > > adding such workaround to the DMA API is a good idea.
> > 
> > We have currently a number of boards broken in the mainline. They must be 
> > fixed for 2.6.36. I don't think the mentioned API will do this for us. So, 
> > as I suggested earlier, we need either this or my patch series
> > 
> > http://thread.gmane.org/gmane.linux.ports.sh.devel/8595
> > 
> > for 2.6.36.
> 
> Why can't you revert a commit that causes the regression?
> 
> The related DMA API wasn't changed in 2.6.36-rc1. The DMA API is not
> responsible for the regression. And the patchset even exnteds the
> definition of the DMA API (dma_declare_coherent_memory). Such change
> shouldn't applied after rc1. I think that DMA-API.txt says that
> dma_declare_coherent_memory() handles coherent memory for a particular
> device. It's not for the API that reserves coherent memory that can be
> used for any device for a single device.
The patch that made the problem obvious for ARM is
309caa9cc6ff39d261264ec4ff10e29489afc8f8 aka v2.6.36-rc1~591^2~2^4~12.
So this went in before v2.6.36-rc1.  One of the "architectures which
similar restrictions" is x86 BTW.

And no, we won't revert 309caa9cc6ff39d261264ec4ff10e29489afc8f8 as it
addresses a hardware restriction.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: g.liakhovetski@gmx.de, mitov@issp.bas.bg,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	akpm@linux-foundation.org, linux-arm-kernel@lists.infradead.org,
	linux-sh@vger.kernel.org, philippe.retornaz@epfl.ch,
	gregkh@suse.de, jkrzyszt@tis.icnet.pl
Subject: Re: [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API
Date: Thu, 26 Aug 2010 11:53:11 +0200	[thread overview]
Message-ID: <20100826095311.GA13051@pengutronix.de> (raw)
In-Reply-To: <20100826182915S.fujita.tomonori@lab.ntt.co.jp>

On Thu, Aug 26, 2010 at 06:30:02PM +0900, FUJITA Tomonori wrote:
> On Thu, 26 Aug 2010 11:06:20 +0200 (CEST)
> Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> 
> > On Thu, 26 Aug 2010, FUJITA Tomonori wrote:
> > 
> > > On Thu, 26 Aug 2010 09:04:14 +0300
> > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > 
> > > > On Thursday, August 26, 2010 08:40:47 am FUJITA Tomonori wrote:
> > > > > On Fri, 20 Aug 2010 14:50:12 +0300
> > > > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > > > 
> > > > > > On Friday, August 20, 2010 11:35:06 am FUJITA Tomonori wrote:
> > > > > > > On Fri, 20 Aug 2010 11:13:45 +0300
> > > > > > > Marin Mitov <mitov@issp.bas.bg> wrote:
> > > > > > > 
> > > > > > > > > > This tric is already used in drivers/staging/dt3155v4l.c
> > > > > > > > > > dt3155_alloc_coherent()/dt3155_free_coherent()
> > > > > > > > > > 
> > > > > > > > > > Here proposed for general use by popular demand from video4linux folks.
> > > > > > > > > > Helps for videobuf-dma-contig framework.
> > > > > > > > > 
> > > > > > > > > What you guys exactly want to do? If you just want to pre-allocate
> > > > > > > > > coherent memory for latter usage,
> > > > > > > > 
> > > > > > > > Yes, just to preallocate not coherent, but rather contiguous memory for latter usage.
> > > > > > > > We use coherent memory because it turns out to be contiguous.
> > > > > > > 
> > > > > > > Hmm, you don't care about coherency? You just need contiguous memory?
> > > > > > 
> > > > > > Yes. We just need contiguous memory. Coherency is important as far as when dma
> > > > > > transfer finishes user land is able to see the new data. Could be done by something like
> > > > > > dma_{,un}map_single()
> > > > > 
> > > > > Then, we should avoid using coherent memory as I exaplained before. In
> > > > > addition, dma_alloc_coherent can't provide large enough contigous
> > > > > memory for some drivers so this patch doesn't help much.
> > > > 
> > > > Please, look at drivers/media/video/videobuf-dma-contig.c. Using coherent memory
> > > > is inavoidable for now, there is no alternative for it for now. The two new functions,
> > > > which I propose are just helpers for those of us who already use coherent memory
> > > > (via videobuf-dma-contig API). May be adding these two functions to 
> > > > drivers/media/video/videobuf-dma-contig.c will be better solution?
> > > 
> > > If you add something to the videobuf-dma-contig API, that's fine by me
> > > because drivers/media/video/videobuf-dma-contig.c uses the own
> > > structure and plays with dma_alloc_coherent. As long as a driver
> > > doesn't touch device->dma_mem directly, it's fine, I think (that is,
> > > dt3155v4l driver is broken). There are already some workarounds for
> > > contigous memory in several drivers anyway.
> > 
> > No, this will not work - this API has to be used from board code and 
> > videobuf can be built modular.
> > 
> > > We will have the proper API for contiguous memory. I don't think that
> > > adding such workaround to the DMA API is a good idea.
> > 
> > We have currently a number of boards broken in the mainline. They must be 
> > fixed for 2.6.36. I don't think the mentioned API will do this for us. So, 
> > as I suggested earlier, we need either this or my patch series
> > 
> > http://thread.gmane.org/gmane.linux.ports.sh.devel/8595
> > 
> > for 2.6.36.
> 
> Why can't you revert a commit that causes the regression?
> 
> The related DMA API wasn't changed in 2.6.36-rc1. The DMA API is not
> responsible for the regression. And the patchset even exnteds the
> definition of the DMA API (dma_declare_coherent_memory). Such change
> shouldn't applied after rc1. I think that DMA-API.txt says that
> dma_declare_coherent_memory() handles coherent memory for a particular
> device. It's not for the API that reserves coherent memory that can be
> used for any device for a single device.
The patch that made the problem obvious for ARM is
309caa9cc6ff39d261264ec4ff10e29489afc8f8 aka v2.6.36-rc1~591^2~2^4~12.
So this went in before v2.6.36-rc1.  One of the "architectures which
similar restrictions" is x86 BTW.

And no, we won't revert 309caa9cc6ff39d261264ec4ff10e29489afc8f8 as it
addresses a hardware restriction.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

  parent reply	other threads:[~2010-08-26  9:53 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-19 15:18 [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Marin Mitov
2010-08-20  7:17 ` FUJITA Tomonori
2010-08-20  8:13   ` Marin Mitov
2010-08-20  8:35     ` FUJITA Tomonori
2010-08-20 11:50       ` Marin Mitov
2010-08-26  5:40         ` FUJITA Tomonori
2010-08-26  6:04           ` Marin Mitov
2010-08-26  6:24             ` FUJITA Tomonori
2010-08-26  7:01               ` Marin Mitov
2010-08-26  9:43                 ` FUJITA Tomonori
2010-08-26 10:14                   ` Marin Mitov
2010-08-26  9:06               ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() Guennadi Liakhovetski
2010-08-26  9:06                 ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Guennadi Liakhovetski
2010-08-26  9:06                 ` Guennadi Liakhovetski
2010-08-26  9:17                 ` [RFC][PATCH] add 
2010-08-26  9:17                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-26  9:17                   ` Uwe Kleine-König
2010-08-26 10:18                   ` Marin Mitov
2010-08-26 10:18                     ` Marin Mitov
2010-08-26 10:18                     ` Marin Mitov
2010-08-26  9:30                 ` [RFC][PATCH] add FUJITA Tomonori
2010-08-26  9:30                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-26  9:30                   ` FUJITA Tomonori
2010-08-26  9:45                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() Guennadi Liakhovetski
2010-08-26  9:45                     ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Guennadi Liakhovetski
2010-08-26  9:45                     ` Guennadi Liakhovetski
2010-08-26  9:51                     ` [RFC][PATCH] add FUJITA Tomonori
2010-08-26  9:51                       ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-26  9:51                       ` FUJITA Tomonori
2010-08-26 17:49                       ` [RFC][PATCH] add Russell King - ARM Linux
2010-08-26 17:49                         ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Russell King - ARM Linux
2010-08-26 17:49                         ` Russell King - ARM Linux
2010-08-26 18:32                         ` Marin Mitov
2010-08-26 18:32                           ` Marin Mitov
2010-08-26 18:32                           ` Marin Mitov
2010-08-26  9:53                   `  [this message]
2010-08-26  9:53                     ` Uwe Kleine-König
2010-08-26  9:53                     ` Uwe Kleine-König
2010-08-26 10:00                     ` [RFC][PATCH] add FUJITA Tomonori
2010-08-26 10:00                       ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-26 10:00                       ` FUJITA Tomonori
2010-08-26 17:54                       ` [RFC][PATCH] add Russell King - ARM Linux
2010-08-26 17:54                         ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Russell King - ARM Linux
2010-08-26 17:54                         ` Russell King - ARM Linux
2010-08-27  0:26                         ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  0:26                           ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  0:26                           ` FUJITA Tomonori
2010-08-27  4:41                       ` [RFC][PATCH] add 
2010-08-27  4:41                         ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  4:41                         ` Uwe Kleine-König
2010-08-27  5:00                         ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  5:00                           ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  5:00                           ` FUJITA Tomonori
2010-08-27  5:19                           ` [RFC][PATCH] add 
2010-08-27  5:19                             ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  5:19                             ` Uwe Kleine-König
2010-08-27  5:57                             ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  5:57                               ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  5:57                               ` FUJITA Tomonori
2010-08-27  6:13                               ` [RFC][PATCH] add 
2010-08-27  6:13                                 ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  6:13                                 ` Uwe Kleine-König
2010-08-27  6:23                               ` Marin Mitov
2010-08-27  6:23                                 ` Marin Mitov
2010-08-27  6:23                                 ` Marin Mitov
2010-08-27  6:32                                 ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  6:32                                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  6:32                                   ` FUJITA Tomonori
2010-08-27  6:38                                   ` [RFC][PATCH] add 
2010-08-27  6:38                                     ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  6:38                                     ` Uwe Kleine-König
2010-08-27  7:02                                   ` Marin Mitov
2010-08-27  7:02                                     ` Marin Mitov
2010-08-27  7:02                                     ` Marin Mitov
2010-08-28  6:14                                   ` Marin Mitov
2010-08-28  6:14                                     ` Marin Mitov
2010-08-28  6:14                                     ` Marin Mitov
2010-08-28  7:10                                     ` [RFC][PATCH] add FUJITA Tomonori
2010-08-28  7:10                                       ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-28  7:10                                       ` FUJITA Tomonori
2010-08-28  7:19                                       ` Marin Mitov
2010-08-28  7:19                                         ` Marin Mitov
2010-08-28  7:19                                         ` Marin Mitov
2010-10-10 14:08         ` FUJITA Tomonori
2010-10-10 14:36           ` Marin Mitov
2010-10-10 18:21             ` Guennadi Liakhovetski
2010-10-10 18:48               ` Marin Mitov
2010-10-13  8:04           ` KAMEZAWA Hiroyuki
2010-10-13 16:42             ` Marin Mitov
2010-10-14  7:16               ` FUJITA Tomonori
2010-08-20 20:05 ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() Guennadi Liakhovetski
2010-08-20 20:05   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Guennadi Liakhovetski
2010-08-20 20:05   ` Guennadi Liakhovetski

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=20100826095311.GA13051@pengutronix.de \
    --to=linux-arm-kernel@lists.infradead.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.