实时Linux - 主线CPU屏蔽或PREEMPT_RT补丁集?

时间:2017-01-17 12:54:18

标签: linux linux-kernel real-time cpu scheduling

我想在运行在iMX6双核系统上的Linux上运行一小段代码,该系统每隔1ms切换一些GPIOS,抖动尽可能小。系统上可能正在运行其他低优先级任务。

所以我知道我有这些选择:

  • CPU屏蔽:让我的任务使用整个cpu 1,同时让cpu 0保留其他所有内容。在我的情况下浪费cpu 1次不是问题。
  • 使用PREEMPT_RT重新编译内核,并调整我的任务优先级以确保它每隔ms唤醒一次。

我脑子里有些问题......:

1-每个案例的利弊是什么?

2-在CPU屏蔽的情况下,我会构建一个普通的用户空间程序吗?或者我应该用kthread写一个模块吗?

3- CPU屏蔽案例:cpusets vs isolcpus kernel option的状态是什么?也就是说,对于内核> 4.x,哪种方式最有效?

1 个答案:

答案 0 :(得分:-1)

FWIW,听起来像是最适合您用例的相对较新的截止日期调度程序。我相信你可以在没有PREEMPT_RT补丁集的vanilla Linux中使用它。

http://retis.sssup.it/~jlelli/talks/rts-like14/SCHED_DEADLINE.pdf