ftrace trace信息开端
# tracer: nop
#
# entries-in-buffer/entries-written: 30624/30624 #P:4
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID TGID CPU# |||| TIMESTAMP FUNCTION
# | | | | |||| | |
1. irq-off
- 显示当前 CPU 是否关闭中断。
- ‘d’ 表示中断被禁用(
local_irq_disable())。 - ‘.’ 表示中断正常开启。
- ‘X’ 表示架构不支持读取 IRQ 标志。
作用:判断是否长时间关中断,避免影响系统实时性。
2. need-resched
- 反映调度标志位:
- ‘N’:
TIF_NEED_RESCHED和PREEMPT_NEED_RESCHED都置位 → 需要调度且抢占。 - ‘n’:只有
TIF_NEED_RESCHED→ 普通调度请求。 - ‘p’:只有
PREEMPT_NEED_RESCHED→ 抢占请求。 - ‘.’:无调度需求。
- ‘N’:
作用:判断当前任务是否应该被调度出去。
3. hardirq/softirq
- 显示当前是否在中断上下文:
- ‘Z’:NMI 嵌套在硬中断中。
- ‘z’:NMI 运行。
- ‘H’:硬中断发生在 softirq 内。
- ‘h’:硬中断上下文。
- ‘s’:软中断上下文。
- ‘.’:普通进程上下文。
作用:帮助分析死锁、抢占延迟,确认代码是否在中断上下文。
4. preempt-depth
- 显示
preempt_disable()嵌套深度。 - 值越大,表示抢占被禁止的层数越多。
作用:用于分析抢占延迟,判断是否有代码长时间禁止抢占。


浙公网安备 33010602011771号