在Linux内核中,创建实时kthread的以下方法是不是正确?
Posted
技术标签:
【中文标题】在Linux内核中,创建实时kthread的以下方法是不是正确?【英文标题】:in Linux kernel, is the following way right to create a real-time kthread?在Linux内核中,创建实时kthread的以下方法是否正确? 【发布时间】:2013-04-09 03:47:15 【问题描述】:在Linux内核中,线程调度是实时的(如SCHED_FIFO)和普通的(SCHED_NORMAL)。
如果我想创建一个实时线程,该怎么做?我猜是这样的:
1,kthread_create
2、给线程一个实时调度器
3、分配实时优先级
这对于实时 kthread 是否合适?
【问题讨论】:
【参考方案1】:在线程本身中,调用:
struct sched_param param = .sched_priority = prio ;
sched_setscheduler(current, SCHED_FIFO, ¶m);
prio
是您想要的优先级。
【讨论】:
对不起,但我对这个答案很不满意:如何设置 kthread 优先级的 syntax 确实没有回答所述问题。获取实时线程需要 prio 值 1,对于如何在非 GPL 模块中执行此操作,我们没有任何答案(因为 sched_setscheduler() 是 EXPORT_SYMBOL_GPL)。SCHED_FIFO
调度策略下的所有优先级值都是实时的。以上是关于在Linux内核中,创建实时kthread的以下方法是不是正确?的主要内容,如果未能解决你的问题,请参考以下文章
RK3399平台开发系列讲解(内核入门篇)1.36Kthreadd线程