Hi,
I am having IMX6 dual lite sabreSD board. I amtrying to capture a still image with resolution 4192 * 3104 but every time I get page allocation error from ipu_csi_enc.c .
Below is the error whic i get:
page allocation failure: order:13, mode:0xd1
[<80048854>] (unwind_backtrace+0x0/0xf8) from [<800c08e8>] (warn_alloc_failed+0xc8/0x100)
[<800c08e8>] (warn_alloc_failed+0xc8/0x100) from [<800c2e20>] (__alloc_pages_nodemask+0x4c8/0x6cc)
[<800c2e20>] (__alloc_pages_nodemask+0x4c8/0x6cc) from [<8004b7c0>] (__dma_alloc+0xa4/0x300)
[<8004b7c0>] (__dma_alloc+0xa4/0x300) from [<8004bff8>] (dma_alloc_coherent+0x54/0x60)
[<8004bff8>] (dma_alloc_coherent+0x54/0x60) from [<7f0121cc>] (csi_enc_enabling_tasks+0x30/0x3c4 [ipu_csi_enc])
VIDIOC_STREAMON error[<7f0121cc>] (csi_enc_enabling_tasks+0x30/0x3c4 [ipu_csi_enc]) from [<7f01623c>] (mxc_streamon+0x78/0x22c [mxc_v4l2_captur)
[<7f01623c>] (mxc_streamon+0x78/0x22c [mxc_v4l2_capture]) from [<7f01808c>] (mxc_v4l_do_ioctl+0x420/0x2120 [mxc_v4l2_capture])
[<7f01808c>] (mxc_v4l_do_ioctl+0x420/0x2120 [mxc_v4l2_capture]) from [<8035c6d4>] (video_usercopy+0x98/0x4d4)
[<8035c6d4>] (video_usercopy+0x98/0x4d4) from [<8035bc70>] (v4l2_ioctl+0x11c/0x138)
start time = 611 s, 931414 us[<8035bc70>] (v4l2_ioctl+0x11c/0x138) from [<80101674>] (do_vfs_ioctl+0x80/0x54c)
[<80101674>] (do_vfs_ioctl+0x80/0x54c) from [<80101b78>] (sys_ioctl+0x38/0x5c)
[<80101b78>] (sys_ioctl+0x38/0x5c) from [<80041fc0>] (ret_fast_syscall+0x0/0x30)
Mem-info:
DMA per-cpu:
CPU 0: hi: 90, btch: 15 usd: 0
CPU 1: hi: 90, btch: 15 usd: 11
Normal per-cpu:
CPU 0: hi: 186, btch: 31 usd: 78
CPU 1: hi: 186, btch: 31 usd: 177
active_anon:156 inactive_anon:16 isolated_anon:0
active_file:381 inactive_file:369 isolated_file:0
unevictable:0 dirty:0 writeback:0 unstable:0
free:166179 slab_reclaimable:641 slab_unreclaimable:1618
mapped:327 shmem:19 pagetables:96 bounce:0
DMA free:94056kB min:844kB low:1052kB high:1264kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(s
lowmem_reserve[]: 0 577 577 577
Normal free:570660kB min:2680kB low:3348kB high:4020kB active_anon:624kB inactive_anon:64kB active_file:1524kB inactive_file:1476kB unevictableo
lowmem_reserve[]: 0 0 0 0
DMA: 4*4kB 5*8kB 7*16kB 8*32kB 7*64kB 2*128kB 1*256kB 5*512kB 4*1024kB 4*2048kB 5*4096kB 1*8192kB 3*16384kB 0*32768kB = 94056kB
Normal: 55*4kB 4*8kB 24*16kB 19*32kB 3*64kB 1*128kB 3*256kB 2*512kB 2*1024kB 0*2048kB 2*4096kB 4*8192kB 4*16384kB 14*32768kB = 570652kB
732 total pagecache pages
0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
Free swap = 0kB
Total swap = 0kB
262144 pages of RAM
166522 free pages
70635 reserved pages
1274 slab pages
787 pages shared
0 pages swap cached
cam->v2f.fmt.pix.sizeimage = 25560576
ERROR:IPU CSI v4l2 capture: Allocate dummy frame failed.
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
VIDIOC_DQBUF failed.
I have checked IMX6 application processor reference manual in which it is clearly stated that maximum frame size supported by IPU is 8192 * 4096 pixels, so my requirement is far below than the maximum. So I doubt if there is some limitation in any of the driver related to memory alocation .
Kindly please provide some inputs regarding this.
Hi,
Have you tried with a smaller image size? It seems that the default configuration of the IPU driver accept a maximum screen size of 4096 x 2048. However, you could enlarge the DMA buffers, as explained on the following links:
Re: DMA related crash when capturing hi-res video while storing to SSD
dma allocation failed whiling taking picture
Sometimes camera can't capture 5M frame · Issue #1 · xhteam/hardware-imx · GitHub
Hope this will be useful for you.
Best regards!
/Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------