计算 SMP IRQ Affinity
来源:互联网 发布:装修软件定哪种好 编辑:程序博客网 时间:2024/06/06 10:06
计算 SMP IRQ Affinity
前天我们讨论了如何绑定特定的硬件中断到特定的 CPU 上,分散和平衡各个中断到不同的 CPU 上以获取更大性能的处理能力。上篇限于篇幅的关系,没有来得及进一步说明 “echo 2 > /proc/irq/90/smp_affinity” 中的 ”2“ 是怎么来的,这其实是个二进制数字,代表 00000010,00000001 代表 CPU0 的话,00000010 就代表 CPU1, “echo 2 > /proc/irq/90/smp_affinity” 的意思就是说把 90 中断绑定到 00000010(CPU1)上。所以各个 CPU 用二进制和十六进制表示就是:
Binary Hex CPU 0 00000001 1 CPU 1 00000010 2 CPU 2 00000100 4 CPU 3 00001000 8
如果我想把 IRQ 绑定到 CPU2 上就是 00000100=4:
# echo "4" > /proc/irq/90/smp_affinity
如果我想把 IRQ 同时平衡到 CPU0 和 CPU2 上就是 00000001+00000100=00000101=5
# echo "5" > /proc/irq/90/smp_affinity
需要注意的是,在手动绑定 IRQ 到 CPU 之前需要先停掉 irqbalance 这个服务,irqbalance 是个服务进程、是用来自动绑定和平衡 IRQ 的:
# /etc/init.d/irqbalance stop
还有一个限制就是,IO-APIC 有两种工作模式:logic 和 physical,在 logic 模式下 IO-APIC 可以同时分布同一种 IO 中断到8颗 CPU (core) 上(受到 bitmask 寄存器的限制,因为 bitmask 只有8位长。);在 physical 模式下不能同时分布同一中断到不同 CPU 上,比如,不能让 eth0 中断同时由 CPU0 和 CPU1 处理,这个时候只能定位 eth0 到 CPU0、eth1 到 CPU1,也就是说 eth0 中断不能像 logic 模式那样可以同时由多个 CPU 处理。
- 计算 SMP IRQ Affinity
- 计算 SMP IRQ Affinity
- 计算 SMP IRQ Affinity
- 计算 SMP IRQ Affinity
- SMP IRQ Affinity
- SMP IRQ Affinity
- smp irq affinity介绍
- RPS和RFS, SMP IRQ affinity
- 设备中断绑定到特定CPU(SMP IRQ AFFINITY)
- 设备中断绑定到特定CPU(SMP IRQ Affinity)
- 设备中断绑定到特定CPU(SMP IRQ Affinity)
- IRQ Affinity
- linux irq/affinity理解
- irq_set_affinity_hint设置irq的affinity
- 分布式通讯优化篇 – IRQ affinity
- Mellanox CX4网卡SMP affinity的奇怪现象
- Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)
- Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)
- jquery.validate.js的基本用法入门
- 工厂模式和抽象工厂模式总结与比较(屌丝专用)
- Factovisors - PC110704
- PAT 1003. 我要通过!(20)
- 中美印日四国程序员比较
- 计算 SMP IRQ Affinity
- PAT 1071. Speech Patterns
- 最初步软件需求说法的简单调查报告
- java IO流
- 关于对java可移植性的简单理解
- sql记录
- 输出一个字符串中重复出现的子串和其出现的次数(JS实现)
- UVA OJ: 10055 - Hashmat the Brave Warrior
- Android C 通过JNI 调用JAVA