Messages in this thread | | | Date | Mon, 21 Mar 2016 16:04:43 +0100 | From | Boris Brezillon <> | 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@ti.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
| |