【发布时间】:2018-09-26 14:26:59
【问题描述】:
有没有办法为 ktimersoftd/x 设置默认优先级,以便它以 -50 的 rt prio 启动,而不是之后手动执行 chrt -p 49 pid of ktimersoftd/0?
谢谢 安迪
【问题讨论】:
-
您找到解决方案了吗,我也需要这样做。
标签: real-time embedded-linux debian-stretch
有没有办法为 ktimersoftd/x 设置默认优先级,以便它以 -50 的 rt prio 启动,而不是之后手动执行 chrt -p 49 pid of ktimersoftd/0?
谢谢 安迪
【问题讨论】:
标签: real-time embedded-linux debian-stretch
这是在内核中设置的,在 kernel/softirq.c 中的以下函数中:
static inline void ktimer_softirqd_set_sched_params(unsigned int cpu)
{
struct sched_param param = { .sched_priority = 1 };
sched_setscheduler(current, SCHED_FIFO, ¶m);
/* Take over timer pending softirqs when starting */
local_irq_disable();
current->softirqs_raised = local_softirq_pending() & TIMER_SOFTIRQS;
local_irq_enable();
}
所以唯一的方法是修补内核并用其他东西更改 1。老实说,我不知道这种变化的后果。它是 1 而不是 50 可能是有原因的。
注意:此功能仅在应用了 PREEMPT_RT 补丁的内核中存在。
【讨论】: