整个一芯专用于单一工艺

前端之家收集整理的这篇文章主要介绍了整个一芯专用于单一工艺前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Linux中有没有办法将一个cpu核心分配给特定的给定进程,并且在这个核心上不应该有任何其他进程或中断处理程序被调度?

我已经阅读过关于使用taskset实用程序的Linux绑定过程到cpu的进程亲和力,但这不是解决我的问题,因为它只是试图将给定的进程绑定到该核心,但有可能其他进程可能在这个核心上安排,这是我想避免什么。

我们应该改变内核代码进行调度吗?

就在这里。事实上,有两种单独的方式来做: – )

现在,完成你想要的最好的方法是:

>在引导期间将参数isolcpus = [cpu_number]添加到Linux内核命令行形式的引导加载程序。这将指示Linux调度程序不在该cpu上运行任何常规任务,除非使用cpu affinity特别请求。
>使用IRQ亲和性设置其他cpu来处理所有中断,以便隔离的cpu不会收到任何中断。
>使用cpu关联性将特定任务修复到隔离的cpu

这将给你最好的Linux可以提供关于cpu隔离,没有树和开发补丁。

您的任务将不时被Linux代码中断,包括其他任务,例如计时器滴答中断和调度程序代码,来自其他cpu的IPI和工作队列内核线程,尽管中断应该是非常小的。

对于一个(几乎)完整的中断源列表,请查看我的页面https://github.com/gby/linux/wiki

另一种方法是使用cpusets,这是更优雅和动态,但在这个时间点(没有迁移的计时器,例如)的一些弱点,这使我推荐老的,原始但有效的isolcpus参数。

请注意,Linux社区目前正在做的工作是解决所有这些问题,更多的是提供更好的隔离。

猜你在找的设计模式相关文章