hi
imx6q use L3.0.35_4.1.0_130816 to build u-boot,kernel and rootfs. when we run our app(qt app), the system hang-up when run 3 days. it happen serval times.
in the kernel log you may find notifications like:
[ 73.247613] INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=6002 jiffies)
[ 77.257610] INFO: rcu_bh_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=6002 jiffies)
[ 253.567611] INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=24034 jiffies)
[ 257.577611] INFO: rcu_bh_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=24034 jiffies)
[ 433.887610] INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=42066 jiffies)
[ 437.897611] INFO: rcu_bh_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=42066 jiffies)
[ 614.207612] INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=60098 jiffies)
[ 618.217610] INFO: rcu_bh_state detected stalls on CPUs/tasks: { 0} (detected by 3, t=60098 jiffies)
in community, i find someone encounter the same problem,according Re: Re: freescale android kernel have scheduling problem !!!,i follow steps below to patch my kernel.
1.modify time.c
rcu_preempt_state detected stalls" could be fixed with the followng patch, please try
| --- linux-3.0.35/arch/arm/plat-mxc/time.c.orig | 2013-12-11 09:25:29.518910709 +1300 |
| +++ linux-3.0.35/arch/arm/plat-mxc/time.c | 2013-12-11 09:26:12.958912361 +1300 |
@@ -165,7 +165,8 @@
| | __raw_writel(tcmp, timer_base + V2_TCMP); |
+ return evt < 0x7fffffff &&
+ (int)(tcmp - __raw_readl(timer_base + V2_TCN)) < 0 ? ETIME : 0;
}
#ifdef DEBUG
2.patch 0027-ENGR00306276-iMX6-Add-workaround-for-ARM-errata-7613.patch, 0026-ENGR00306257-1027-fix-system-hang-up-issue-caused-by.patch and 0025-ENGR00295714-GPT-Status-register-bits-are-cleared-in.patch
but when i finish modify,the kernel still hung up like before。 i also try to update gpu lib to p13,but i found lib(libEGL,libGAL) in gpu-viv-bin-mx6q-3.0.35-4.1.0 can not work in p13. is it p13 cannot used in linux?
is there anyting i can try to fix this problem in linux?