On Wed, 14 May 2008, zhuzhenhua wrote: > On Wed, May 14, 2008 at 1:23 AM, Ralf Baechle <ralf@xxxxxxxxxxxxxx> wrote: > > On Tue, May 13, 2008 at 07:44:06PM +0800, zhuzhenhua wrote: > > > thanks for your advice, i found in newest kernel version, in some arch , > > the > > > dma_alloc_coherent will call split_page. > > > because my kernel version is 2.6.14, so i first patch a split_page patch > > as > > > follow: > > > > > http://www.kernel.org/pub/linux/kernel/people/npiggin/patches/lockless/2.6.16-rc5/broken-out/mm-split-highorder.patch > > > > > > but it seemes that there is still no split_page in > > > dma_alloc_coherent/dma_alloc_noncoherent > > > so i copy from other arch code to arch/mips/mm/dma-noncoherent.c (attach > > at > > > the end of mail) > > > and now my driver just use dma_alloc_coherent malloc 3M directly, and it > > > seemes ok. > > > i just wonder why mips arch dma_alloc_coherent/dma_alloc_nocoherent do > > not > > > call split_page while other arch calling. > > > > I have not identified the waste of memory as a big problem for typical > > MIPS systems yet. > > > > The 3MB requirement of your device is sort of odd because it's not a power > > of two. Have you considered splitting the allocation into a 2MB and a 1MB > > allocation or would that be undersirable? > > > > Thanks for your reply. > Our board is for embedded system , It only have 32M sdram and we don't want > to > waste 1M sdram. My sensor driver need about 2.5xM memory to capture a > picture > by DMA (our DMA controller do not support scatter/gather). > > I also can use bootargs "mem=29M" to keep 3M sdram. but it's not flexible > as > passing a param to driver module(calling dma_alloc_coherent). maybe my > situation > is not common for MIPS arch. so that's is no split_page in > dma_alloc_coherent. > and now after patch,it seemes ok for me. One other issue is that bootargs "mem=29M" is guaranteed to give you 3 MiB for your device, while dma_alloc_coherent() may fail if memory is too fragmented. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds