首页 > 解决方案 > 分配服务器 CPU 内核以执行特定调用

问题描述

有没有一种方法可以优先考虑由 CPU 内核执行的特定调用?

意思是,如果这个调用被传递,一个 CPU 内核将专门用于执行那个调用。

标签: linuxsoapprocesscpusybase

解决方案


在 Linux 中,由中断调用的系统调用可以使用 IRQ 映射工具与内核相关联。高级解释位于https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-cpu-irq

如果您正在编写自己的设备驱动程序,那么 Linux 内核提供了简单的接口来在特定内核上运行功能。内核函数“smp_call_function_single()”就是一个例子——kernel/smp.c 中还有其他函数,并且在内核代码的其他位中使用这些函数的例子很多——例如,arch/x86/lib /msr-smp.c 和 arch/x86/kernel/cpuid.c 是我了解这些功能的地方。

我对内核代码的经验非常有限,但我不知道有什么机制可以对使用相同中断号/IRQ 访问的函数的执行提供差异亲和力控制。根据函数的复杂性,可以创建一个简单的驱动程序,将所需的调用包装在“smp_call_function_single()”中。


推荐阅读