加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

整个一芯专用于单一工艺

发布时间:2020-12-14 01:08:23 所属栏目:百科 来源:网络整理
导读:在Linux中有没有办法将一个CPU核心分配给特定的给定进程,并且在这个核心上不应该有任何其他进程或中断处理程序被调度? 我已经阅读过关于使用taskset实用程序的Linux绑定过程到CPU的进程亲和力,但这不是解决我的问题,因为它只是试图将给定的进程绑定到该
在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社区目前正在做的工作是解决所有这些问题,更多的是提供更好的隔离。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读