Regarding encode decode operations

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Regarding encode decode operations

1,007 Views
shilpac
Contributor II

Hi,

I am facing issues(Physical memory and framebuffer memory allocation failures) while executing a specific combination of encode and decode operation.

I request your inputs on what is the reason behind the  failures and guide us on how to resolve these.

Set up details and Observations given below.

Set up details

Hardware: IMX6Q Sabrelite Eval Board

Release: Yocto 1.4

Build: Linux 3.0.35_1.1.0

CPU: 996 MHz

VPU: 352 MHz

# of CPUs Online: 4

YUV File duration: 10 seconds

SD Card: 32GB UHS

Media Framework: GStreamer

Combination

Source

Process

Resolution

X

Y

FPS

Pixels

IP Camera rtsp stream

Decode

D1

720

480

30

10368000

YUV File

Encode

720p

1280

720

30

27648000

YUV File

Encode

D1

720

480

30

10368000

YUV File

Encode

D1

720

480

30

10368000

TOTAL

58752000

Command used to execute above combination

gst-launch-0.10 rtspsrc location=rtsp://192.168.1.4/live1.sdp latency=0 ! rtph264depay ! vpudec low-latency=true ! autovideosink & gst-launch-0.10 filesrc location=/media/mmcblk1p1/samples/vstream_30f_1280_720_10.yuv blocksize=1382400 ! 'video/x-raw-yuv,format=(fourcc)I420, width=1280, height=720, framerate=(fraction)30/1' ! vpuenc codec=6 bitrate=15728640 gopsize=1 framerate-nu=30 force-framerate=true  ! ffmux_mp4 ! filesink location=sample1.mp4 sync=false & gst-launch-0.10 filesrc location=/media/mmcblk1p1/samples/vstream_30f_720_480_10_1.yuv blocksize= 518400 ! 'video/x-raw-yuv,format=(fourcc)I420, width=720, height=480, framerate=(fraction)30/1' ! vpuenc codec=6 bitrate=15728640 gopsize=1 framerate-nu=30 force-framerate=true  ! ffmux_mp4 ! filesink location=sample2.mp4 sync=false & gst-launch-0.10 filesrc location=/media/mmcblk1p1/samples/vstream_30f_720_480_10_2.yuv blocksize= 518400 ! 'video/x-raw-yuv,format=(fourcc)I420, width=720, height=480, framerate=(fraction)30/1' ! vpuenc codec=6 bitrate=15728640 gopsize=1 framerate-nu=30 force-framerate=true  ! ffmux_mp4 ! filesink location=sample3.mp4 sync=false &

Problems Encountered

Problem 1: While executing the above combination multiple times “Physical memory allocation error” got encountered.

Logs below

==============================================================

   

filesrc0:src: page allocation failure: order:9, mode:0xd1

[<80045ed0>] (unwind_backtrace+0x0/0xf8) from [<800ba534>] (warn_alloc_failed+0xcc/0x10c)

[<800ba534>] (warn_alloc_failed+0xcc/0x10c) from [<800bca7c>] (__alloc_pages_nodemask+0x4e8/0x728)

[<800bca7c>] (__alloc_pages_nodemask+0x4e8/0x728) from [<80048e48>] (__dma_alloc+0x9c/0x2f0)

[<80048e48>] (__dma_alloc+0x9c/0x2f0) from [<800494b4>] (dma_alloc_coherent+0x5c/0x64)

[<800494b4>] (dma_alloc_coherent+0x5c/0x64) from [<803c9460>] (vpu_alloc_dma_buffer+0x2c/0x68)

[<803c9460>] (vpu_alloc_dma_buffer+0x2c/0x68) from [<803c9c18>] (vpu_ioctl+0x77c/0x880)

[<803c9c18>] (vpu_ioctl+0x77c/0x880) from [<800faebc>] (do_vfs_ioctl+0x80/0x538)

[<800faebc>] (do_vfs_ioctl+0x80/0x538) from [<800fb3a8>] (sys_ioctl+0x34/0x60)

[<800fb3a8>] (sys_ioctl+0x34/0x60) from [<8003f100>] (ret_fast_syscall+0x0/0x30)

Mem-info:

DMA per-cpu:

CPU    0: hi:   90, btch:  15 usd:  76

CPU    1: hi:   90, btch:  15 usd:   0

CPU    2: hi:   90, btch:  15 usd:  83

[ERR]CPU    3: hi:   90, btch:  15 usd:   0

Normal per-cpu:

CPU    0: hi:  186, btch:  31 usd:  56

CPU    1: hi:  186, btch:  31 usd:  28

        mem allocation failed!CPU    2: hi:  186, btch:  31 usd: 170

CPU    3: hi:  186, btch:  31 usd:   0

active_anon:5639 inactive_anon:243 isolated_anon:0

active_file:98209 inactive_file:70342 isolated_file:277

Got EOS from element "pipeline0". unevictable:1153 dirty:2168 writeback:1063 unstable:0

free:29548 slab_reclaimable:901 slab_unreclaimable:2081

mapped:2636 shmem:305 pagetables:607 bounce:0

DMA free:77792kB min:780kB low:972kB high:1168kB active_anon:1420kB inactive_anon:16kB active_file:108kB inactive_file:47524kB unevictable:1660kB isol

ated(anon):0kB isolated(file):0kB present:186944kB mlocked:1660kB dirty:2588kB writeback:1292kB mapped:756kB shmem:72kB slab_reclaimable:272kB slab_un

reclaimable:116kB kernel_stack:16kB pagetables:36kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:30 all_unreclaimable? no

lowmem_reserve[]: 0 705 705 705

Execution ended after 11024183045Normal free:40400kB min:3028kB low:3784kB high:4540kB active_anon:21136kB inactive_anon:956kB active_file:392728kB in

active_file:233844kB unevictable:2952kB isolated(anon):0kB isolated(file):1108kB present:722368kB mlocked:2952kB dirty:6084kB writeback:2960kB mapped:

9788kB shmem:1148kB slab_reclaimable:3332kB slab_unreclaimable:8208kB kernel_stack:936kB pagetables:2392kB unstable:0kB bounce:0kB writeback_tmp:0kB p

ages_scanned:309 all_unreclaimable? no

lowmem_reserve[]: 0 0 0 0

  1. ns.

DMA: 188*4kB 156*8kB 139*16kB 83*32kB 78*64kB 59*128kB 54*256kB 43*512kB 22*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 77792kB

Normal: 1076*4kB 474*8kB 289*16kB 111*32kB 101*64kB 60*128kB 31*256kB 4*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 40400kB

169818 total pagecache pages

0 pages in swap cache

Setting pipeline to PAUSED ...Swap cache stats: add 0, delete 0, find 0/0

Free swap  = 0kB

Total swap = 0kB

Setting pipeline to READY ...262144 pages of RAM

30130 free pages

37827 reserved pages

1595 slab pages

Setting pipeline to NULL ...17079 pages shared

0 pages swap cached

Physical memory allocation error!

Physical memory allocation error!

Freeing pipeline ...

==============================================================

Problem 2: Decode operation failed once as framebuffer memory allocation was not successful.

Logs below

==============================================================

   

rtpjitterbuffer: page allocation failure: order:11, mode:0xd1

[<80045ed0>] (unwind_backtrace+0x0/0xf8) from [<800ba534>] (warn_alloc_failed+0xcc/0x10c)

[<800ba534>] (warn_alloc_failed+0xcc/0x10c) from [<800bca7c>] (__alloc_pages_nodemask+0x4e8/0x728)

[<800bca7c>] (__alloc_pages_nodemask+0x4e8/0x728) from [<80048e48>] (__dma_alloc+0x9c/0x2f0)

[<80048e48>] (__dma_alloc+0x9c/0x2f0) from [<80049114>] (dma_alloc_writecombine+0x24/0x2c)

[<80049114>] (dma_alloc_writecombine+0x24/0x2c) from [<80291060>] (mxcfb_set_par+0x164/0x6a8)

[<80291060>] (mxcfb_set_par+0x164/0x6a8) from [<8027aaac>] (fb_set_var+0x12c/0x284)

[<8027aaac>] (fb_set_var+0x12c/0x284) from [<803932a8>] (config_disp_output+0xec/0x3e8)

[<803932a8>] (config_disp_output+0xec/0x3e8) from [<80393a90>] (mxc_vidioc_streamon+0x54/0x108)

[<80393a90>] (mxc_vidioc_streamon+0x54/0x108) from [<803880c4>] (__video_do_ioctl+0x1ae8/0x511c)

[<803880c4>] (__video_do_ioctl+0x1ae8/0x511c) from [<80386178>] (video_usercopy+0x13c/0x53c)

[<80386178>] (video_usercopy+0x13c/0x53c) from [<80385554>] (v4l2_ioctl+0x94/0x138)

[<80385554>] (v4l2_ioctl+0x94/0x138) from [<800faebc>] (do_vfs_ioctl+0x80/0x538)

[<800faebc>] (do_vfs_ioctl+0x80/0x538) from [<800fb3a8>] (sys_ioctl+0x34/0x60)

[<800fb3a8>] (sys_ioctl+0x34/0x60) from [<8003f100>] (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:   0

CPU    2: hi:   90, btch:  15 usd:   0

CPU    3: hi:   90, btch:  15 usd:   4

Normal per-cpu:

CPU    0: hi:  186, btch:  31 usd:   0

CPU    1: hi:  186, btch:  31 usd:   0

CPU    2: hi:  186, btch:  31 usd:   0

CPU    3: hi:  186, btch:  31 usd:   0

active_anon:3447 inactive_anon:302 isolated_anon:0

active_file:128658 inactive_file:56662 isolated_file:0

unevictable:888 dirty:0 writeback:0 unstable:0

free:22705 slab_reclaimable:1022 slab_unreclaimable:1899

mapped:2892 shmem:342 pagetables:500 bounce:0

DMA free:85576kB min:780kB low:972kB high:1168kB active_anon:868kB inactive_anon:76kB active_file:34316kB inactive_file:33156kB unevictable:1188kB iso

lated(anon):0kB isolated(file):0kB present:186944kB mlocked:1188kB dirty:0kB writeback:0kB mapped:1508kB shmem:128kB slab_reclaimable:244kB slab_unrec

laimable:72kB kernel_stack:16kB pagetables:84kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:8 all_unreclaimable? no

lowmem_reserve[]: 0 705 705 705

Normal free:5244kB min:3028kB low:3784kB high:4540kB active_anon:12920kB inactive_anon:1132kB active_file:480316kB inactive_file:193492kB unevictable:

2364kB isolated(anon):0kB isolated(file):0kB present:722368kB mlocked:2364kB dirty:0kB writeback:0kB mapped:10060kB shmem:1240kB slab_reclaimable:3844

kB slab_unreclaimable:7524kB kernel_stack:752kB pagetables:1916kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

lowmem_reserve[]: 0 0 0 0

DMA: 194*4kB 174*8kB 157*16kB 94*32kB 109*64kB 84*128kB 59*256kB 18*512kB 27*1024kB 2*2048kB 1*4096kB 0*8192kB 0*16384kB 0*32768kB = 85576kB

Normal: 883*4kB 138*8kB 30*16kB 2*32kB 1*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 5244kB

186299 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

23102 free pages

37847 reserved pages

1588 slab pages

13553 pages shared

0 pages swap cached

mxc_sdc_fb mxc_sdc_fb.0: Unable to allocate framebuffer memory

detected fb_set_par error, error code: -12

mxc_v4l2_output mxc_v4l2_output.0: ERR:config_disp_output fb_set_var ret:-12

mxc_v4l2_output mxc_v4l2_output.0: Config display output failed

root@imx6qsabrelite:/media/mmcblk1p1/samples# WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/MFW_GST_V4LSINK_INFO_T:auto

videosink0-actual-sink-mfw_v4l: A lot of buffers are being dropped.

Additional debug info:

/home/developer/Yocto-1.4/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/libs/gst/base/gstbasesink.c(2875):

gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/MFW_GST_V4LSINK_INFO_T:autovideosink0-actual-sink-mfw_v4l:

There may be a timestamping problem, or this computer is too slow.

root@imx6qsabrelite:/media/mmcblk1p1/samples#

root@imx6qsabrelite:/media/mmcblk1p1/samples# WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/MFW_GST_V4LSINK_INFO_T:auto

videosink0-actual-sink-mfw_v4l: A lot of buffers are being dropped.

Additional debug info:

/home/developer/Yocto-1.4/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/libs/gst/base/gstbasesink.c(2875):

gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/MFW_GST_V4LSINK_INFO_T:autovideosink0-actual-sink-mfw_v4l:

There may be a timestamping problem, or this computer is too slow.

WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/MFW_GST_V4LSINK_INFO_T:autovideosink0-actual-sink-mfw_v4l: A lot of buffe

rs are being dropped.

Thanks,

Shilpa Chandrappa

1 Reply

423 Views
igorpadykov
NXP Employee
NXP Employee

Hi Shipa,

it is highly recommended to migrate to 3.10.17 kernel

since Linux 3.0.35 has unsolved framebuffer allocation problems

as confirmed below

Re: Long running vpu task with memory leak bug on imx6

L3.10.17_1.0.0_IMX6QDLS_BUNDLE : Source Code

Also one can apply some patches given below

GStreamer crashing on i.MX6 (Boundary Devices Nitrogen6x)

Best regards

chip

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos