linux - 分配服务器 CPU 内核以执行特定调用
问题描述
有没有一种方法可以优先考虑由 CPU 内核执行的特定调用?
意思是,如果这个调用被传递,一个 CPU 内核将专门用于执行那个调用。
解决方案
在 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()”中。
推荐阅读
- php - 如何根据与会话变量匹配的数据库条目填充选择框
- azure - Azure AD 访问令牌过期时间配置
- sql-server - SQL中的成员资格计算逻辑
- c++ - 我对 Delphi 中的动态虚拟通道有点卡住了
- mysql - 更新时在同一张表上执行触发器
- python - 如何让用户选择他们想要加载的按钮
- c++ - 如何评估使用 Omnet++ 和 Crypto++ 进行数字签名的时间?
- typescript - TypeScript 中是否有严格的类型检查?
- python - 如何修复 ConnectionRefusedError: [WinError 10061] 目标机器主动拒绝它?(Django 电子邮件)
- angularjs - Angularjs:当表中该列的值为空时,如何显示 td 为空