[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50F3F289.3090402@web.de>
Date: Mon, 14 Jan 2013 12:56:57 +0100
From: Soeren Moch <smoch@....de>
To: Marek Szyprowski <m.szyprowski@...sung.com>
CC: linux-arm-kernel@...ts.infradead.org,
linaro-mm-sig@...ts.linaro.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org,
Kyungmin Park <kyungmin.park@...sung.com>,
Arnd Bergmann <arnd@...db.de>,
Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>,
Sebastian Hesselbarth <sebastian.hesselbarth@...il.com>,
Andrew Lunn <andrew@...n.ch>,
Andrew Morton <akpm@...ux-foundation.org>,
Jason Cooper <jason@...edaemon.net>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
Michal Hocko <mhocko@...e.cz>, Mel Gorman <mgorman@...e.de>
Subject: Re: [PATCH v2] mm: dmapool: use provided gfp flags for all dma_alloc_coherent()
calls
On 20.11.2012 15:31, Marek Szyprowski wrote:
> dmapool always calls dma_alloc_coherent() with GFP_ATOMIC flag,
> regardless the flags provided by the caller. This causes excessive
> pruning of emergency memory pools without any good reason. Additionaly,
> on ARM architecture any driver which is using dmapools will sooner or
> later trigger the following error:
> "ERROR: 256 KiB atomic DMA coherent pool is too small!
> Please increase it with coherent_pool= kernel parameter!".
> Increasing the coherent pool size usually doesn't help much and only
> delays such error, because all GFP_ATOMIC DMA allocations are always
> served from the special, very limited memory pool.
>
> This patch changes the dmapool code to correctly use gfp flags provided
> by the dmapool caller.
>
> Reported-by: Soeren Moch <smoch@....de>
> Reported-by: Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>
> Signed-off-by: Marek Szyprowski <m.szyprowski@...sung.com>
> Tested-by: Andrew Lunn <andrew@...n.ch>
> Tested-by: Soeren Moch <smoch@....de>
Now I tested linux-3.7.1 (this patch is included there) on my Marvell
Kirkwood system. I still see
ERROR: 1024 KiB atomic DMA coherent pool is too small!
Please increase it with coherent_pool= kernel parameter!
after several hours of runtime under heavy load with SATA and
DVB-Sticks (em28xx / drxk and dib0700).
As already reported earlier this patch improved the behavior compared to
linux-3.6.x and 3.7.0 (error after several ten minutes runtime), but
I still see a regression compared to linux-3.5.x. With this kernel the
same system with same workload runs flawlessly.
Regards,
Soeren
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists