整个一芯专用于单一工艺
在Linux中有没有办法将一个CPU核心分配给特定的给定进程,并且在这个核心上不应该有任何其他进程或中断处理程序被调度?
我已经阅读过关于使用taskset实用程序的Linux绑定过程到CPU的进程亲和力,但这不是解决我的问题,因为它只是试图将给定的进程绑定到该核心,但有可能其他进程可能在这个核心上安排,这是我想避免什么。 我们应该改变内核代码进行调度吗?
就在这里。事实上,有两种单独的方式来做: – )
现在,完成你想要的最好的方法是: >在引导期间将参数isolcpus = [cpu_number]添加到Linux内核命令行形式的引导加载程序。这将指示Linux调度程序不在该CPU上运行任何常规任务,除非使用cpu affinity特别请求。 这将给你最好的Linux可以提供关于CPU隔离,没有树和开发补丁。 您的任务将不时被Linux代码中断,包括其他任务,例如计时器滴答中断和调度程序代码,来自其他CPU的IPI和工作队列内核线程,尽管中断应该是非常小的。 对于一个(几乎)完整的中断源列表,请查看我的页面在https://github.com/gby/linux/wiki 另一种方法是使用cpusets,这是更优雅和动态,但在这个时间点(没有迁移的计时器,例如)的一些弱点,这使我推荐老的,原始但有效的isolcpus参数。 请注意,Linux社区目前正在做的工作是解决所有这些问题,更多的是提供更好的隔离。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |