我们有一个定制板、AM437X 运行 TI Linux 4.14.79
此问题经常发生、但我们没有可重现的情形。 所有进程和工作队列突然停止运行
我们可以触发 SysRq 并通过串行控制台转到 kgdb、所有线程都位于 context_switch 中:
ID 目标 ID 帧
1 内核/debug/debug_core.c:1071中 arch_kgdb_breakpoint()内的 Thread 4294967294 (shadowCPU0) 0xc01ae060
2 线程1 (初始化) context_switch (rf= ,NEXT = ,prev= ,rq= )内核/sched/core.c:2811
3 线程2 (kthreadd) context_switch (rf= ,NEXT = ,prev= ,rq= )内核/sched/core.c:2811
4 线程4 (kworker/0:0h) context_switch (rf= ,NEXT = ,prev= ,rq= )内核/sched/core.c:2811
其中一个线程:
#0 context_switch (rf= ,NEXT = ,prev= ,rq= )内核/sched/core.c:2811
#1 __schedule (抢占= )内核/sched/core.c:3384
#2 0xc085ba70 in schedule () at kernel/sched/core.c:3428
#3 0xc085f760 in schedule_hrtimeout_range_clock (expires = 0x0、delta = 、mode=HRTIME_MODE_ABS、clock=1)在内核/时间/hrtimer.c:1716
#4 在 schedule_hrtimeout_range (expires =中的0xc085f7f4 ,Δ= ,mode= )内核/时间/小时计时器.c:1761
否则一切看起来都正常、KDB/kgdb 在串行控制台上工作、但线程未调度