Re: [PATCH v4 6/7] mtd: nand: omap2: Fix high memory dma prefetch transfer
From: Boris Brezillon <hidden>
Date: 2016-03-21 15:04:58
Also in:
linux-omap, lkml
From: Boris Brezillon <hidden>
Date: 2016-03-21 15:04:58
Also in:
linux-omap, lkml
Hi Franklin, On Thu, 10 Mar 2016 17:56:42 -0600 Franklin S Cooper Jr [off-list ref] 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html