From: smoch@web.de (Soeren Moch)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls
Date: Wed, 16 Jan 2013 09:55:55 +0100 [thread overview]
Message-ID: <50F66B1B.40301@web.de> (raw)
In-Reply-To: <50F61D86.4020801@web.de>
On 16.01.2013 04:24, Soeren Moch wrote:
> On 16.01.2013 03:40, Jason Cooper wrote:
>> Soeren,
>>
>> On Wed, Jan 16, 2013 at 01:17:59AM +0100, Soeren Moch wrote:
>>> On 15.01.2013 22:56, Jason Cooper wrote:
>>>> On Tue, Jan 15, 2013 at 03:16:17PM -0500, Jason Cooper wrote:
>>>>> If my understanding is correct, one of the drivers (most likely one)
>>>>> either asks for too small of a dma buffer, or is not properly
>>>>> deallocating blocks from the per-device pool. Either case leads to
>>>>> exhaustion, and falling back to the atomic pool. Which subsequently
>>>>> gets wiped out as well.
>>>>
>>>> If my hunch is right, could you please try each of the three dvb
>>>> drivers
>>>> in turn and see which one (or more than one) causes the error?
>>>
>>> In fact I use only 2 types of DVB sticks: em28xx usb bridge plus drxk
>>> demodulator, and dib0700 usb bridge plus dib7000p demod.
>>>
>>> I would bet for em28xx causing the error, but this is not thoroughly
>>> tested. Unfortunately testing with removed sticks is not easy, because
>>> this is a production system and disabling some services for the long
>>> time we need to trigger this error will certainly result in unhappy
>>> users.
>>
OK, I could trigger the error
ERROR: 1024 KiB atomic DMA coherent pool is too small!
Please increase it with coherent_pool= kernel parameter!
only with em28xx sticks and sata, dib0700 sticks removed.
>> Just out of curiosity, what board is it?
>
> The kirkwood board? A modified Guruplug Server Plus.
em28xx sticks: "TerraTec Cinergy HTC Stick HD" and "PCTV Quatro Stick"
dib0700 sticks: "WinTV-NOVA-TD Stick"
>>
>>> I will see what I can do here. Is there an easy way to track the buffer
>>> usage without having to wait for complete exhaustion?
>>
>> DMA_API_DEBUG
>
> OK, maybe I can try this.
>>
>>> In linux-3.5.x there is no such problem. Can we use all available memory
>>> for dma buffers here on armv5 architectures, in contrast to newer
>>> kernels?
>>
>> Were the loads exactly the same when you tested 3.5.x?
>
> Exactly the same, yes.
>
>> I looked at the
>> changes from v3.5 to v3.7.1 for all four drivers you mentioned as well
>> as sata_mv.
>>
>> The biggest thing I see is that all of the media drivers got shuffled
>> around into their own subdirectories after v3.5. 'git show -M 0c0d06c'
>> shows it was a clean copy of all the files.
>>
>> What would be most helpful is if you could do a git bisect between
>> v3.5.x (working) and the oldest version where you know it started
>> failing (v3.7.1 or earlier if you know it).
>>
> I did not bisect it, but Marek mentioned earlier that commit
> e9da6e9905e639b0f842a244bc770b48ad0523e9 in Linux v3.6-rc1 introduced
> new code for dma allocations. This is probably the root cause for the
> new (mis-)behavior (due to my tests 3.6.0 is not working anymore).
I don't want to say that Mareks patch is wrong, probably it triggers a
bug somewhere else! (in em28xx?)
> I'm not very familiar with arm mm code, and from the patch itself I
> cannot understand what's different. Maybe CONFIG_CMA is default
> also for armv5 (not only v6) now? But I might be totally wrong here,
> maybe someone of the mm experts can explain the difference?
>
Regards,
Soeren
WARNING: multiple messages have this Message-ID (diff)
From: Soeren Moch <smoch@web.de>
To: Jason Cooper <jason@lakedaemon.net>
Cc: Greg KH <gregkh@linuxfoundation.org>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Andrew Lunn <andrew@lunn.ch>, Arnd Bergmann <arnd@arndb.de>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
linux-kernel@vger.kernel.org, Michal Hocko <mhocko@suse.cz>,
linux-mm@kvack.org, Kyungmin Park <kyungmin.park@samsung.com>,
Mel Gorman <mgorman@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
linaro-mm-sig@lists.linaro.org,
linux-arm-kernel@lists.infradead.org,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Subject: Re: [PATCH v2] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls
Date: Wed, 16 Jan 2013 09:55:55 +0100 [thread overview]
Message-ID: <50F66B1B.40301@web.de> (raw)
In-Reply-To: <50F61D86.4020801@web.de>
On 16.01.2013 04:24, Soeren Moch wrote:
> On 16.01.2013 03:40, Jason Cooper wrote:
>> Soeren,
>>
>> On Wed, Jan 16, 2013 at 01:17:59AM +0100, Soeren Moch wrote:
>>> On 15.01.2013 22:56, Jason Cooper wrote:
>>>> On Tue, Jan 15, 2013 at 03:16:17PM -0500, Jason Cooper wrote:
>>>>> If my understanding is correct, one of the drivers (most likely one)
>>>>> either asks for too small of a dma buffer, or is not properly
>>>>> deallocating blocks from the per-device pool. Either case leads to
>>>>> exhaustion, and falling back to the atomic pool. Which subsequently
>>>>> gets wiped out as well.
>>>>
>>>> If my hunch is right, could you please try each of the three dvb
>>>> drivers
>>>> in turn and see which one (or more than one) causes the error?
>>>
>>> In fact I use only 2 types of DVB sticks: em28xx usb bridge plus drxk
>>> demodulator, and dib0700 usb bridge plus dib7000p demod.
>>>
>>> I would bet for em28xx causing the error, but this is not thoroughly
>>> tested. Unfortunately testing with removed sticks is not easy, because
>>> this is a production system and disabling some services for the long
>>> time we need to trigger this error will certainly result in unhappy
>>> users.
>>
OK, I could trigger the error
ERROR: 1024 KiB atomic DMA coherent pool is too small!
Please increase it with coherent_pool= kernel parameter!
only with em28xx sticks and sata, dib0700 sticks removed.
>> Just out of curiosity, what board is it?
>
> The kirkwood board? A modified Guruplug Server Plus.
em28xx sticks: "TerraTec Cinergy HTC Stick HD" and "PCTV Quatro Stick"
dib0700 sticks: "WinTV-NOVA-TD Stick"
>>
>>> I will see what I can do here. Is there an easy way to track the buffer
>>> usage without having to wait for complete exhaustion?
>>
>> DMA_API_DEBUG
>
> OK, maybe I can try this.
>>
>>> In linux-3.5.x there is no such problem. Can we use all available memory
>>> for dma buffers here on armv5 architectures, in contrast to newer
>>> kernels?
>>
>> Were the loads exactly the same when you tested 3.5.x?
>
> Exactly the same, yes.
>
>> I looked at the
>> changes from v3.5 to v3.7.1 for all four drivers you mentioned as well
>> as sata_mv.
>>
>> The biggest thing I see is that all of the media drivers got shuffled
>> around into their own subdirectories after v3.5. 'git show -M 0c0d06c'
>> shows it was a clean copy of all the files.
>>
>> What would be most helpful is if you could do a git bisect between
>> v3.5.x (working) and the oldest version where you know it started
>> failing (v3.7.1 or earlier if you know it).
>>
> I did not bisect it, but Marek mentioned earlier that commit
> e9da6e9905e639b0f842a244bc770b48ad0523e9 in Linux v3.6-rc1 introduced
> new code for dma allocations. This is probably the root cause for the
> new (mis-)behavior (due to my tests 3.6.0 is not working anymore).
I don't want to say that Mareks patch is wrong, probably it triggers a
bug somewhere else! (in em28xx?)
> I'm not very familiar with arm mm code, and from the patch itself I
> cannot understand what's different. Maybe CONFIG_CMA is default
> also for armv5 (not only v6) now? But I might be totally wrong here,
> maybe someone of the mm experts can explain the difference?
>
Regards,
Soeren
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Soeren Moch <smoch@web.de>
To: Jason Cooper <jason@lakedaemon.net>
Cc: Greg KH <gregkh@linuxfoundation.org>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Andrew Lunn <andrew@lunn.ch>, Arnd Bergmann <arnd@arndb.de>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
linux-kernel@vger.kernel.org, Michal Hocko <mhocko@suse.cz>,
linux-mm@kvack.org, Kyungmin Park <kyungmin.park@samsung.com>,
Mel Gorman <mgorman@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
Marek Szyprowski <m.szyprowski@samsung.com>,
linaro-mm-sig@lists.linaro.org,
linux-arm-kernel@lists.infradead.org,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Subject: Re: [PATCH v2] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls
Date: Wed, 16 Jan 2013 09:55:55 +0100 [thread overview]
Message-ID: <50F66B1B.40301@web.de> (raw)
In-Reply-To: <50F61D86.4020801@web.de>
On 16.01.2013 04:24, Soeren Moch wrote:
> On 16.01.2013 03:40, Jason Cooper wrote:
>> Soeren,
>>
>> On Wed, Jan 16, 2013 at 01:17:59AM +0100, Soeren Moch wrote:
>>> On 15.01.2013 22:56, Jason Cooper wrote:
>>>> On Tue, Jan 15, 2013 at 03:16:17PM -0500, Jason Cooper wrote:
>>>>> If my understanding is correct, one of the drivers (most likely one)
>>>>> either asks for too small of a dma buffer, or is not properly
>>>>> deallocating blocks from the per-device pool. Either case leads to
>>>>> exhaustion, and falling back to the atomic pool. Which subsequently
>>>>> gets wiped out as well.
>>>>
>>>> If my hunch is right, could you please try each of the three dvb
>>>> drivers
>>>> in turn and see which one (or more than one) causes the error?
>>>
>>> In fact I use only 2 types of DVB sticks: em28xx usb bridge plus drxk
>>> demodulator, and dib0700 usb bridge plus dib7000p demod.
>>>
>>> I would bet for em28xx causing the error, but this is not thoroughly
>>> tested. Unfortunately testing with removed sticks is not easy, because
>>> this is a production system and disabling some services for the long
>>> time we need to trigger this error will certainly result in unhappy
>>> users.
>>
OK, I could trigger the error
ERROR: 1024 KiB atomic DMA coherent pool is too small!
Please increase it with coherent_pool= kernel parameter!
only with em28xx sticks and sata, dib0700 sticks removed.
>> Just out of curiosity, what board is it?
>
> The kirkwood board? A modified Guruplug Server Plus.
em28xx sticks: "TerraTec Cinergy HTC Stick HD" and "PCTV Quatro Stick"
dib0700 sticks: "WinTV-NOVA-TD Stick"
>>
>>> I will see what I can do here. Is there an easy way to track the buffer
>>> usage without having to wait for complete exhaustion?
>>
>> DMA_API_DEBUG
>
> OK, maybe I can try this.
>>
>>> In linux-3.5.x there is no such problem. Can we use all available memory
>>> for dma buffers here on armv5 architectures, in contrast to newer
>>> kernels?
>>
>> Were the loads exactly the same when you tested 3.5.x?
>
> Exactly the same, yes.
>
>> I looked at the
>> changes from v3.5 to v3.7.1 for all four drivers you mentioned as well
>> as sata_mv.
>>
>> The biggest thing I see is that all of the media drivers got shuffled
>> around into their own subdirectories after v3.5. 'git show -M 0c0d06c'
>> shows it was a clean copy of all the files.
>>
>> What would be most helpful is if you could do a git bisect between
>> v3.5.x (working) and the oldest version where you know it started
>> failing (v3.7.1 or earlier if you know it).
>>
> I did not bisect it, but Marek mentioned earlier that commit
> e9da6e9905e639b0f842a244bc770b48ad0523e9 in Linux v3.6-rc1 introduced
> new code for dma allocations. This is probably the root cause for the
> new (mis-)behavior (due to my tests 3.6.0 is not working anymore).
I don't want to say that Mareks patch is wrong, probably it triggers a
bug somewhere else! (in em28xx?)
> I'm not very familiar with arm mm code, and from the patch itself I
> cannot understand what's different. Maybe CONFIG_CMA is default
> also for armv5 (not only v6) now? But I might be totally wrong here,
> maybe someone of the mm experts can explain the difference?
>
Regards,
Soeren
next prev parent reply other threads:[~2013-01-16 8:55 UTC|newest]
Thread overview: 181+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-08 6:38 [PATCH] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls Marek Szyprowski
2012-11-08 6:38 ` Marek Szyprowski
2012-11-08 6:38 ` Marek Szyprowski
2012-11-11 17:22 ` Andrew Lunn
2012-11-11 17:22 ` Andrew Lunn
2012-11-11 17:22 ` Andrew Lunn
2012-11-12 9:48 ` Soeren Moch
2012-11-12 9:48 ` Soeren Moch
2012-11-12 9:48 ` Soeren Moch
2012-11-12 10:38 ` Andrew Lunn
2012-11-12 10:38 ` Andrew Lunn
2012-11-12 10:38 ` Andrew Lunn
2012-11-12 11:03 ` Soeren Moch
2012-11-12 11:03 ` Soeren Moch
2012-11-12 11:03 ` Soeren Moch
2012-11-11 17:31 ` [PATCH] ARM: Orion: Remove redundent init_dma_coherent_pool_size() Andrew Lunn
2012-11-19 0:20 ` Jason Cooper
2013-04-17 20:38 ` Jason Cooper
2013-04-17 20:49 ` Gregory CLEMENT
2013-05-13 19:38 ` Jason Cooper
2012-11-19 0:18 ` [PATCH] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls Jason Cooper
2012-11-19 0:18 ` Jason Cooper
2012-11-19 0:18 ` Jason Cooper
2012-11-19 22:48 ` Andrew Morton
2012-11-19 22:48 ` Andrew Morton
2012-11-19 22:48 ` Andrew Morton
2012-11-20 10:48 ` Marek Szyprowski
2012-11-20 10:48 ` Marek Szyprowski
2012-11-20 10:48 ` Marek Szyprowski
2012-11-20 19:52 ` Andrew Morton
2012-11-20 19:52 ` Andrew Morton
2012-11-20 19:52 ` Andrew Morton
2012-11-20 14:31 ` [PATCH v2] " Marek Szyprowski
2012-11-20 14:31 ` Marek Szyprowski
2012-11-20 14:31 ` Marek Szyprowski
2012-11-20 19:33 ` Andrew Morton
2012-11-20 19:33 ` Andrew Morton
2012-11-20 19:33 ` Andrew Morton
2012-11-20 20:27 ` Jason Cooper
2012-11-20 20:27 ` Jason Cooper
2012-11-20 20:27 ` Jason Cooper
2012-11-21 8:08 ` Marek Szyprowski
2012-11-21 8:08 ` Marek Szyprowski
2012-11-21 8:08 ` Marek Szyprowski
2012-11-21 8:36 ` Andrew Morton
2012-11-21 8:36 ` Andrew Morton
2012-11-21 8:36 ` Andrew Morton
2012-11-21 9:20 ` Marek Szyprowski
2012-11-21 9:20 ` Marek Szyprowski
2012-11-21 9:20 ` Marek Szyprowski
2012-11-21 19:17 ` Andrew Morton
2012-11-21 19:17 ` Andrew Morton
2012-11-21 19:17 ` Andrew Morton
2012-11-22 12:55 ` Marek Szyprowski
2012-11-22 12:55 ` Marek Szyprowski
2012-11-22 12:55 ` Marek Szyprowski
2013-01-14 11:56 ` Soeren Moch
2013-01-14 11:56 ` Soeren Moch
2013-01-14 11:56 ` Soeren Moch
2013-01-15 16:56 ` Jason Cooper
2013-01-15 16:56 ` Jason Cooper
2013-01-15 16:56 ` Jason Cooper
2013-01-15 17:50 ` Greg KH
2013-01-15 17:50 ` Greg KH
2013-01-15 17:50 ` Greg KH
2013-01-15 20:16 ` Jason Cooper
2013-01-15 20:16 ` Jason Cooper
2013-01-15 20:16 ` Jason Cooper
2013-01-15 21:56 ` Jason Cooper
2013-01-15 21:56 ` Jason Cooper
2013-01-15 21:56 ` Jason Cooper
2013-01-16 0:17 ` Soeren Moch
2013-01-16 0:17 ` Soeren Moch
2013-01-16 0:17 ` Soeren Moch
2013-01-16 2:40 ` Jason Cooper
2013-01-16 2:40 ` Jason Cooper
2013-01-16 2:40 ` Jason Cooper
2013-01-16 3:24 ` Soeren Moch
2013-01-16 3:24 ` Soeren Moch
2013-01-16 3:24 ` Soeren Moch
2013-01-16 8:55 ` Soeren Moch [this message]
2013-01-16 8:55 ` Soeren Moch
2013-01-16 8:55 ` Soeren Moch
2013-01-16 15:50 ` [PATCH] ata: sata_mv: fix sg_tbl_pool alignment Jason Cooper
2013-01-16 15:50 ` Jason Cooper
2013-01-16 15:50 ` Jason Cooper
2013-01-16 17:05 ` Soeren Moch
2013-01-16 17:05 ` Soeren Moch
2013-01-16 17:05 ` Soeren Moch
2013-01-16 17:52 ` Jason Cooper
2013-01-16 17:52 ` Jason Cooper
2013-01-16 17:52 ` Jason Cooper
2013-01-16 18:35 ` Jason Cooper
2013-01-16 18:35 ` Jason Cooper
2013-01-16 18:35 ` Jason Cooper
2013-01-16 22:26 ` Soeren Moch
2013-01-16 22:26 ` Soeren Moch
2013-01-16 22:26 ` Soeren Moch
2013-01-16 23:10 ` Soeren Moch
2013-01-16 23:10 ` Soeren Moch
2013-01-16 23:10 ` Soeren Moch
2013-01-17 9:11 ` Soeren Moch
2013-01-17 9:11 ` Soeren Moch
2013-01-17 9:11 ` Soeren Moch
2013-01-16 17:32 ` [PATCH v2] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls Soeren Moch
2013-01-16 17:32 ` Soeren Moch
2013-01-16 17:32 ` Soeren Moch
2013-01-16 17:47 ` Jason Cooper
2013-01-16 17:47 ` Jason Cooper
2013-01-16 17:47 ` Jason Cooper
2013-01-16 22:36 ` Soeren Moch
2013-01-16 22:36 ` Soeren Moch
2013-01-16 22:36 ` Soeren Moch
2013-01-17 10:49 ` Arnd Bergmann
2013-01-17 10:49 ` Arnd Bergmann
2013-01-17 10:49 ` Arnd Bergmann
2013-01-17 13:47 ` Soeren Moch
2013-01-17 13:47 ` Soeren Moch
2013-01-17 13:47 ` Soeren Moch
2013-01-17 20:26 ` Arnd Bergmann
2013-01-17 20:26 ` Arnd Bergmann
2013-01-17 20:26 ` Arnd Bergmann
2013-01-19 15:29 ` Soeren Moch
2013-01-19 15:29 ` Soeren Moch
2013-01-19 18:59 ` Andrew Lunn
2013-01-19 18:59 ` Andrew Lunn
2013-01-19 18:59 ` Andrew Lunn
2013-01-23 15:30 ` Soeren Moch
2013-01-23 15:30 ` Soeren Moch
2013-01-23 15:30 ` Soeren Moch
2013-01-23 16:25 ` Andrew Lunn
2013-01-23 16:25 ` Andrew Lunn
2013-01-23 16:25 ` Andrew Lunn
2013-01-23 17:07 ` Soeren Moch
2013-01-23 17:07 ` Soeren Moch
2013-01-23 17:07 ` Soeren Moch
2013-01-23 17:20 ` Soeren Moch
2013-01-23 17:20 ` Soeren Moch
2013-01-23 17:20 ` Soeren Moch
2013-01-23 18:10 ` Andrew Lunn
2013-01-23 18:10 ` Andrew Lunn
2013-01-23 18:10 ` Andrew Lunn
2013-01-28 20:59 ` Soeren Moch
2013-01-28 20:59 ` Soeren Moch
2013-01-28 20:59 ` Soeren Moch
2013-01-29 0:13 ` Jason Cooper
2013-01-29 0:13 ` Jason Cooper
2013-01-29 0:13 ` Jason Cooper
2013-01-29 11:02 ` Andrew Lunn
2013-01-29 11:02 ` Andrew Lunn
2013-01-29 11:02 ` Andrew Lunn
2013-01-29 11:50 ` Soeren Moch
2013-01-29 11:50 ` Soeren Moch
2013-01-29 11:50 ` Soeren Moch
2013-01-19 20:05 ` Arnd Bergmann
2013-01-19 20:05 ` Arnd Bergmann
2013-01-19 20:05 ` Arnd Bergmann
2013-01-21 15:01 ` Soeren Moch
2013-01-21 15:01 ` Soeren Moch
2013-01-21 15:01 ` Soeren Moch
2013-01-21 18:55 ` Arnd Bergmann
2013-01-21 18:55 ` Arnd Bergmann
2013-01-21 18:55 ` Arnd Bergmann
2013-01-21 21:01 ` Greg KH
2013-01-21 21:01 ` Greg KH
2013-01-21 21:01 ` Greg KH
2013-01-22 18:13 ` Arnd Bergmann
2013-01-22 18:13 ` Arnd Bergmann
2013-01-22 18:13 ` Arnd Bergmann
2013-01-23 14:37 ` Soeren Moch
2013-01-23 14:37 ` Soeren Moch
2013-01-23 14:37 ` Soeren Moch
2013-01-19 16:24 ` Andrew Lunn
2013-01-19 16:24 ` Andrew Lunn
2013-01-19 16:24 ` Andrew Lunn
2013-01-15 20:05 ` Sebastian Hesselbarth
2013-01-15 20:05 ` Sebastian Hesselbarth
2013-01-15 20:05 ` Sebastian Hesselbarth
2013-01-15 20:19 ` Jason Cooper
2013-01-15 20:19 ` Jason Cooper
2013-01-15 20:19 ` Jason Cooper
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=50F66B1B.40301@web.de \
--to=smoch@web.de \
--cc=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.