2

有没有办法为 ktimersoftd/x 设置默认优先级,以便它以-50 的 rt prio 启动,而不是chrt -p 49 pid of ktimersoftd/0之后手动执行?

感谢安迪

4

1 回答 1

1

这是在内核中设置的,在 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, &param);
        
        /* 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 补丁的内核中。

于 2020-09-14T18:14:43.237 回答