Out Linux Kernel Version:
Timesys LinuxLink 3.0.35-ts-armv71
* based on [ L3.0.35_4.0.0 ]
* we change the kernel setting about CONFIG_RCU_CPU_STALL_TIMEOUT from 30sec to 10sec .CPU:i.MX6Q
The frequency operates 15 boards consecutively for two days and occurs in 1-2 boards.
I confirmed a few thing for the individual difference of the hardware .
When my system hang-up , my system may or may not output the log about rcu detected stall.Follows are the log .
a)
Thu Mar 05 08:14:11.496 2015] INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 2 3} (detected by 0, t=1002 jiffies)
b)
Mar 5 06:16:09 (none) user.err kernel: INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 1 3} (detected by 0, t=1002 jiffies)
c)
Mar 5 10:32:47 (none) user.err kernel: INFO: rcu_preempt_state detected stall on CPU 3 (t=1001 jiffies)Mar 5 10:32:47 (none) user.err kernel: INFO: rcu_preempt_state detected stalls on CPUs/tasks: { 3} (detected by 2, t=1002 jiffies)
By the application that we develop, I produce nine child threads from main thread and i watch the movement of the child thread in main thread.
when my system hang-up , either main thread and child thread may be hang-up .
If main thread hang-up, the watchdog timer outputs Power-on Reset .
So i cannot acquire useful log .
I traced child thread when hang-up , the thread did not wakeup after the sleep function call .
I set 1sec or 100ms for the sleep function , but the thread wakeup 10 sec later .
I implement a program to put up a stop flag of the global variable when there is not a reply, it more than 10 seconds.
I felt that I linked about the wakeup and change of the global variable .
Question:
Could you tell me a cause that you think about this problem ?