gplay crashing on i.MX6 Solo

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

gplay crashing on i.MX6 Solo

1,591 Views
mohamedkalilull
Contributor IV

Hi All,

In Latest Ltib (L3.0.35_4.1.0_130816) Kernel is Crashing while playing Video files with gplay commands, this is happen with continuously playing video file in i,Mx6 Solo with 512MB RAM, I'm getting the following kernel error message


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

[<80043e14>] (unwind_backtrace+0x0/0xf8) from [<800b98b0>] (warn_alloc_failed+0xc8/0x100)

[<800b98b0>] (warn_alloc_failed+0xc8/0x100) from [<800bbde8>] (__alloc_pages_nodemask+0x4c8/0x6cc)

[<800bbde8>] (__alloc_pages_nodemask+0x4c8/0x6cc) from [<80046d80>] (__dma_alloc+0xa4/0x300)

[<80046d80>] (__dma_alloc+0xa4/0x300) from [<800475b8>] (dma_alloc_coherent+0x54/0x60)

[<800475b8>] (dma_alloc_coherent+0x54/0x60) from [<8038da60>] (vpu_alloc_dma_buffer+0x2c/0x54)

[<8038da60>] (vpu_alloc_dma_buffer+0x2c/0x54) from [<8038dbf8>] (vpu_ioctl+0x170/0x89c)

[<8038dbf8>] (vpu_ioctl+0x170/0x89c) from [<800fa63c>] (do_vfs_ioctl+0x80/0x54c)

[<800fa63c>] (do_vfs_ioctl+0x80/0x54c) from [<800fab40>] (sys_ioctl+0x38/0x5c)

[<800fab40>] (sys_ioctl+0x38/0x5c) from [<8003cfc0>] (ret_fast_syscall+0x0/0x30)

Mem-info:

DMA per-cpu:

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

Normal per-cpu:

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

active_anon:593 inactive_anon:12 isolated_anon:0

active_file:24109 inactive_file:27103 isolated_file:0

unevictable:0 dirty:1 writeback:1 unstable:0

free:37882 slab_reclaimable:421 slab_unreclaimable:1545

mapped:1132 shmem:15 pagetables:49 bounce:0

DMA free:133000kB min:1196kB low:1492kB high:1792kB active_anon:12kB inactive_anon:0kB active_file:96kB inactive_file:36104kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:186944kB mlocked:0kB dirty:0kB writeback:0kB mapped:8kB shmem:0kB slab_reclaimable:140kB slab_unreclaimable:16kB kernel_stack:16kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

lowmem_reserve[]: 0 197 197 197

Normal free:18528kB min:1292kB low:1612kB high:1936kB active_anon:2360kB inactive_anon:48kB active_file:96340kB inactive_file:72308kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:202176kB mlocked:0kB dirty:4kB writeback:4kB mapped:4520kB shmem:60kB slab_reclaimable:1544kB slab_unreclaimable:6164kB kernel_stack:448kB pagetables:196kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:18 all_unreclaimable? no

lowmem_reserve[]: 0 0 0 0

DMA: 62*4kB 60*8kB 59*16kB 40*32kB 36*64kB 40*128kB 33*256kB 31*512kB 16*1024kB 14*2048kB 5*4096kB 0*8192kB 0*16384kB 1*32768kB = 133000kB

Normal: 574*4kB 331*8kB 153*16kB 22*32kB 23*64kB 12*128kB 11*256kB 5*512kB 0*1024kB 1*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 18528kB

51234 total pagecache pages

0 pages in swap cache

Swap cache stats: add 0, delete 0, find 0/0

Free swap  = 0kB

Total swap = 0kB

131072 pages of RAM

38097 free pages

35674 reserved pages

1424 slab pages

2485 pages shared

0 pages swap cached

Physical memory allocation error!

Physical memory allocation error!

[ERR]   mem allocation failed!

Thanks,

Kalil

Labels (4)
7 Replies

886 Views
LeonardoSandova
Specialist I

Looks like memory starvation problem. Which are the resolutions of the videos, 1080p? how long does it take to see the crash?

Leo

0 Kudos

886 Views
mohamedkalilull
Contributor IV

Hi Leo,

This gplay crashing issue is still coming but it is taking long time (about 30 hours) after adding above mentioned code, previously kernel is crashed shortly (with in an hour), if i add frame-pulse=1 in gst-launch command, kernel is not crashing.

Thanks

Kalil

0 Kudos

886 Views
YixingKong
Senior Contributor IV

Mohamed

Our engineer had provided a patch in https://community.freescale.com/message/360926#360926. Please try it. If your issue is gone please click Correct Answer/Helpfull Answer.

Regards,

Yixing

0 Kudos

886 Views
LeonardoSandova
Specialist I

Copying jackmao on this thread.

0 Kudos

886 Views
mohamedkalilull
Contributor IV

Hi Leo

After adding following code in Board file as Mentioned in Reference Board file (Sabresd in L3.0.35_4.1.0_130816), this issue is not occuring

struct imx_vout_mem {

       resource_size_t res_mbase;

       resource_size_t res_msize;

};

static struct imx_vout_mem vout_mem __initdata = {

       .res_msize = SZ_128M,

};

  "

  "

  "

      struct platform_device *voutdev;

  "

  "

  "

  "

        voutdev = imx6q_add_v4l2_output(0);

       if (vout_mem.res_msize && voutdev) {

               dma_declare_coherent_memory(&voutdev->dev,

                       vout_mem.res_mbase,

                       vout_mem.res_mbase,

                      vout_mem.res_msize,

                       DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE);

       }

  "

  "

  "

       if (vout_mem.res_msize) {

               phys = memblock_alloc_base(vout_mem.res_msize,

                               SZ_4K, SZ_1G);

               memblock_remove(phys, vout_mem.res_msize);

               vout_mem.res_mbase = phys;

       }

thank you for your interest

Kalil

886 Views
OtavioSalvador
Senior Contributor II

Or a reference to the referenced documentation.

0 Kudos

887 Views
senykthomas
Contributor III

Hi Kalil,

I'm having a very similar problem (Qt instead of gplay, still using gstreamer).

What kernel sources are you using?

Can you provide a diff? It's a bit hard to understand what parts needs to be added where exactly.

Greets

Thomas

0 Kudos