我正在开发将在Linux上使用PREEMPT_RT
补丁运行的实时软件。虽然这可以让我通过使用Linux实时调度程序(SCHED_RR
或SCHED_FIFO
)获得实时性能,但我不确定我应该为我的线程使用哪些优先级值。在我的系统上,当我查看我看到的优先级时(仅显示具有RTPRIO
的进程):
$ ps -e -o cmd,pri,rtprio
CMD PRI RTPRIO
[sirq-high/0] 89 49
[sirq-timer/0] 89 49
[sirq-net-tx/0] 89 49
[sirq-net-rx/0] 89 49
[sirq-block/0] 89 49
[sirq-block-iopo] 89 49
[sirq-tasklet/0] 89 49
[sirq-sched/0] 89 49
[sirq-hrtimer/0] 89 49
[sirq-rcu/0] 89 49
[posixcputmr/0] 139 99
[events/0] 41 1
[irq/17-systemac] 90 50
[irq/19-watchdog] 90 50
[irq/18-eth0] 90 50
[irq/16-serial] 90 50
我有两个问题:
sirq
,irq
,posixcputmr
任务是什么?内核线程? 答案 0 :(得分:1)
所有这些sirq,irq,posixcputmr任务是什么?内核线程?
是的,括号中的所有任务都是内核线程。
我应该优先运行我的软件?
正常RT的2-69,非常高优先级的应用程序线程的90-98。后者将阻止所有IRQ处理程序,因此尝试尽可能少地执行高优先级。 Source