[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160321160443.0a4165d1@bbrezillon>
Date: Mon, 21 Mar 2016 16:04:43 +0100
From: Boris Brezillon <boris.brezillon@...e-electrons.com>
To: Franklin S Cooper Jr <fcooper@...com>
Cc: nsekhar@...com, dwmw2@...radead.org, computersforpeace@...il.com,
rogerq@...com, tony@...mide.com, devicetree@...r.kernel.org,
linux-omap@...r.kernel.org, linux-mtd@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 6/7] mtd: nand: omap2: Fix high memory dma prefetch
transfer
Hi Franklin,
On Thu, 10 Mar 2016 17:56:42 -0600
Franklin S Cooper Jr <fcooper@...com> wrote:
> Based on DMA documentation and testing using high memory buffer when
> doing dma transfers can lead to various issues including kernel
> panics.
I guess it all comes from the vmalloced buffer case, which are not
guaranteed to be physically contiguous (one of the DMA requirement,
unless you have an iommu).
>
> To workaround this simply use cpu copy. The amount of high memory
> buffers used are very uncommon so no noticeable performance hit should
> be seen.
Hm, that's not necessarily true. UBI and UBIFS allocate their buffers
using vmalloc (vmalloced buffers fall in the high_memory region), and
those are likely to be dis-contiguous if you have NANDs with pages > 4k.
I recently posted patches to ease sg_table creation from any kind of
virtual address [1][2]. Can you try them and let me know if it fixes
your problem?
Thanks,
Boris
[1]https://lkml.org/lkml/2016/3/8/276
[2]https://lkml.org/lkml/2016/3/8/277
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Powered by blists - more mailing lists