Dear All,
I use i.mx6solo with kernel 3.10.53.
My QML(Qt5.4.3) application (with playing movie) sometime freeze with kernel "BUG:" and stall logs.
Can anyone offer any suggestions on how to avoid this issue.
dmesg log:
------------[ cut here ]------------
WARNING: at mm/page_alloc.c:6047 dma_release_from_contiguous+0x98/0xc4()
338 pages are still in use!
Modules linked in: ov5640_camera_mipi
CPU: 0 PID: 606 Comm: myapp Not tainted 3.10.53-1.1.1 #1
[<80015700>] (unwind_backtrace+0x0/0xec) from [<80011b74>] (show_stack+0x10/0x14)
[<80011b74>] (show_stack+0x10/0x14) from [<8002de28>] (warn_slowpath_common+0x54/0x6c)
[<8002de28>] (warn_slowpath_common+0x54/0x6c) from [<8002de70>] (warn_slowpath_fmt+0x30/0x40)
[<8002de70>] (warn_slowpath_fmt+0x30/0x40) from [<8030e9a4>] (dma_release_from_contiguous+0x98/0xc4)
[<8030e9a4>] (dma_release_from_contiguous+0x98/0xc4) from [<804a6c80>] (vpu_free_dma_buffer+0x44/0x4c)
[<804a6c80>] (vpu_free_dma_buffer+0x44/0x4c) from [<804a731c>] (vpu_ioctl+0x4e8/0x920)
[<804a731c>] (vpu_ioctl+0x4e8/0x920) from [<800df824>] (do_vfs_ioctl+0x3ec/0x5ac)
[<800df824>] (do_vfs_ioctl+0x3ec/0x5ac) from [<800dfa1c>] (SyS_ioctl+0x38/0x60)
[<800dfa1c>] (SyS_ioctl+0x38/0x60) from [<8000e080>] (ret_fast_syscall+0x0/0x30)
---[ end trace b4f567490c02222d ]---
BUG: Bad page state in process myapp pfn:26a40
page:80c50800 count:0 mapcount:0 mapping:8206d87c index:0xc
page flags: 0x8020c(referenced|uptodate|arch_1|swapbacked)
Modules linked in: ov5640_camera_mipi
CPU: 0 PID: 606 Comm: myapp Tainted: G W 3.10.53-1.1.1 #1
[<80015700>] (unwind_backtrace+0x0/0xec) from [<80011b74>] (show_stack+0x10/0x14)
[<80011b74>] (show_stack+0x10/0x14) from [<8009d7a8>] (bad_page+0xc0/0x110)
[<8009d7a8>] (bad_page+0xc0/0x110) from [<8009d8a4>] (free_pages_prepare+0xac/0x104)
[<8009d8a4>] (free_pages_prepare+0xac/0x104) from [<8009f2d8>] (free_hot_cold_page+0x18/0x150)
[<8009f2d8>] (free_hot_cold_page+0x18/0x150) from [<8009fb70>] (free_hot_cold_page_list+0x2c/0x48)
[<8009fb70>] (free_hot_cold_page_list+0x2c/0x48) from [<800a3164>] (release_pages+0x1cc/0x1d4)
[<800a3164>] (release_pages+0x1cc/0x1d4) from [<800c58d8>] (free_pages_and_swap_cache+0x70/0xa4)
[<800c58d8>] (free_pages_and_swap_cache+0x70/0xa4) from [<800b9684>] (unmap_region+0x108/0x178)
[<800b9684>] (unmap_region+0x108/0x178) from [<800bb1f4>] (do_munmap+0x23c/0x41c)
[<800bb1f4>] (do_munmap+0x23c/0x41c) from [<8022a430>] (SyS_shmdt+0xa0/0x158)
[<8022a430>] (SyS_shmdt+0xa0/0x158) from [<8000e080>] (ret_fast_syscall+0x0/0x30)
Disabling lock debugging due to kernel taint
BUG: Bad page state in process myapp pfn:26a36
page:80c506c0 count:0 mapcount:0 mapping:8206d87c index:0xb
page flags: 0x8020c(referenced|uptodate|arch_1|swapbacked)
Modules linked in: ov5640_camera_mipi
CPU: 0 PID: 606 Comm: myapp Tainted: G | B W | 3.10.53-1.1.1 #1 |
[<80015700>] (unwind_backtrace+0x0/0xec) from [<80011b74>] (show_stack+0x10/0x14)
[<80011b74>] (show_stack+0x10/0x14) from [<8009d7a8>] (bad_page+0xc0/0x110)
[<8009d7a8>] (bad_page+0xc0/0x110) from [<8009d8a4>] (free_pages_prepare+0xac/0x104)
[<8009d8a4>] (free_pages_prepare+0xac/0x104) from [<8009f2d8>] (free_hot_cold_page+0x18/0x150)
[<8009f2d8>] (free_hot_cold_page+0x18/0x150) from [<8009fb70>] (free_hot_cold_page_list+0x2c/0x48)
[<8009fb70>] (free_hot_cold_page_list+0x2c/0x48) from [<800a3164>] (release_pages+0x1cc/0x1d4)
[<800a3164>] (release_pages+0x1cc/0x1d4) from [<800c58d8>] (free_pages_and_swap_cache+0x70/0xa4)
[<800c58d8>] (free_pages_and_swap_cache+0x70/0xa4) from [<800b9684>] (unmap_region+0x108/0x178)
[<800b9684>] (unmap_region+0x108/0x178) from [<800bb1f4>] (do_munmap+0x23c/0x41c)
[<800bb1f4>] (do_munmap+0x23c/0x41c) from [<8022a430>] (SyS_shmdt+0xa0/0x158)
[<8022a430>] (SyS_shmdt+0xa0/0x158) from [<8000e080>] (ret_fast_syscall+0x0/0x30)
BUG: Bad page state in process myapp pfn:26a3e
page:80c507c0 count:0 mapcount:0 mapping:8206d87c index:0xf
page flags: 0x8020c(referenced|uptodate|arch_1|swapbacked)
Modules linked in: ov5640_camera_mipi
CPU: 0 PID: 606 Comm: myapp Tainted: G | B W | 3.10.53-1.1.1 #1 |
[<80015700>] (unwind_backtrace+0x0/0xec) from [<80011b74>] (show_stack+0x10/0x14)
[<80011b74>] (show_stack+0x10/0x14) from [<8009d7a8>] (bad_page+0xc0/0x110)
[<8009d7a8>] (bad_page+0xc0/0x110) from [<8009d8a4>] (free_pages_prepare+0xac/0x104)
[<8009d8a4>] (free_pages_prepare+0xac/0x104) from [<8009f2d8>] (free_hot_cold_page+0x18/0x150)
[<8009f2d8>] (free_hot_cold_page+0x18/0x150) from [<8009fb70>] (free_hot_cold_page_list+0x2c/0x48)
[<8009fb70>] (free_hot_cold_page_list+0x2c/0x48) from [<800a3164>] (release_pages+0x1cc/0x1d4)
[<800a3164>] (release_pages+0x1cc/0x1d4) from [<800c58d8>] (free_pages_and_swap_cache+0x70/0xa4)
[<800c58d8>] (free_pages_and_swap_cache+0x70/0xa4) from [<800b9684>] (unmap_region+0x108/0x178)
[<800b9684>] (unmap_region+0x108/0x178) from [<800bb1f4>] (do_munmap+0x23c/0x41c)
[<800bb1f4>] (do_munmap+0x23c/0x41c) from [<8022a430>] (SyS_shmdt+0xa0/0x158)
[<8022a430>] (SyS_shmdt+0xa0/0x158) from [<8000e080>] (ret_fast_syscall+0x0/0x30)
INFO: rcu_preempt detected stalls on CPUs/tasks: {} (detected by 0, t=2102 jiffies, g=329503, c=329502, q=53)
INFO: Stall ended before state dump start
(following many stall log)
Regards,
Masaru
Hi Masaru
one can try run ddr test and update image with new ddr calibration coefficients
i.MX6/7 DDR Stress Test Tool V2.40
also recommended to build with new gpu driver, included in recent 3.14.52 release
Board Support Packages (29)
L3.14.52_1.1.0_MX6QDLSOLO (REV L3.14.52_1.1.0)
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------