Ale*_*ysh 3 linux ubuntu troubleshooting smp irq
由于这个问题中概述的原因,我想更改 IRQ SMP 关联性:CPU0 is swamped with eth1 interrupts
但我不能——Input/output error当我尝试写信给/proc/irq/*/smp_affinity.
请向我指出有关此事的 HOWTO。(正式参考/proc/irq/*/也很酷。)
血腥细节:
请注意,这是基于 Ubuntu 的 Xen XCP 主机内的 VM (PV domU)。
$ uname -a Linux MYHOST 2.6.38-15-virtual #59-Ubuntu SMP Fri Apr 27 16:40:18 UTC 2012 i686 i686 i386 GNU/Linux $ lsb_release -a 没有可用的 LSB 模块。 分销商 ID: Ubuntu 描述:Ubuntu 11.04 发布:11.04 代号:natty $ sudo cat /proc/irq/*/smp_affinity 01 01 01 01 01 80 80 80 80 80 80 40 40 40 40 40 40 20 20 20 20 20 20 10 10 10 10 10 10 08 08 08 08 08 08 04 04 04 04 04 04 02 02 02 02 02 02 01 01 01 01 01 01
更新。错误详情:
$ N=$(grep -c 处理器 /proc/cpuinfo) $回声$N 8 $ printf %x $((2**N-1)) ff $ printf %x $((2**N-1)) | 须藤三通/proc/irq/*/smp_affinity fftee:/proc/irq/288/smp_affinity:输入/输出错误 三通:/proc/irq/289/smp_affinity:输入/输出错误 三通:/proc/irq/290/smp_affinity:输入/输出错误 三通:/proc/irq/291/smp_affinity:输入/输出错误 三通:/proc/irq/292/smp_affinity:输入/输出错误 三通:/proc/irq/293/smp_affinity:输入/输出错误 三通:/proc/irq/294/smp_affinity:输入/输出错误 三通:/proc/irq/295/smp_affinity:输入/输出错误 三通:/proc/irq/296/smp_affinity:输入/输出错误 三通:/proc/irq/297/smp_affinity:输入/输出错误 三通:/proc/irq/298/smp_affinity:输入/输出错误 三通:/proc/irq/299/smp_affinity:输入/输出错误 三通:/proc/irq/300/smp_affinity:输入/输出错误 三通:/proc/irq/301/smp_affinity:输入/输出错误 三通:/proc/irq/302/smp_affinity:输入/输出错误 三通:/proc/irq/303/smp_affinity:输入/输出错误 三通:/proc/irq/304/smp_affinity:输入/输出错误 三通:/proc/irq/305/smp_affinity:输入/输出错误 三通:/proc/irq/306/smp_affinity:输入/输出错误 三通:/proc/irq/307/smp_affinity:输入/输出错误 三通:/proc/irq/308/smp_affinity:输入/输出错误 三通:/proc/irq/309/smp_affinity:输入/输出错误 三通:/proc/irq/310/smp_affinity:输入/输出错误 三通:/proc/irq/311/smp_affinity:输入/输出错误 三通:/proc/irq/312/smp_affinity:输入/输出错误 三通:/proc/irq/313/smp_affinity:输入/输出错误 三通:/proc/irq/314/smp_affinity:输入/输出错误 三通:/proc/irq/315/smp_affinity:输入/输出错误 三通:/proc/irq/316/smp_affinity:输入/输出错误 三通:/proc/irq/317/smp_affinity:输入/输出错误 三通:/proc/irq/318/smp_affinity:输入/输出错误 三通:/proc/irq/319/smp_affinity:输入/输出错误 三通:/proc/irq/320/smp_affinity:输入/输出错误 三通:/proc/irq/321/smp_affinity:输入/输出错误 三通:/proc/irq/322/smp_affinity:输入/输出错误 三通:/proc/irq/323/smp_affinity:输入/输出错误 三通:/proc/irq/324/smp_affinity:输入/输出错误 三通:/proc/irq/325/smp_affinity:输入/输出错误 三通:/proc/irq/326/smp_affinity:输入/输出错误 三通:/proc/irq/327/smp_affinity:输入/输出错误 三通:/proc/irq/328/smp_affinity:输入/输出错误 三通:/proc/irq/329/smp_affinity:输入/输出错误 三通:/proc/irq/330/smp_affinity:输入/输出错误 三通:/proc/irq/331/smp_affinity:输入/输出错误 三通:/proc/irq/332/smp_affinity:输入/输出错误 三通:/proc/irq/333/smp_affinity:输入/输出错误 三通:/proc/irq/334/smp_affinity:输入/输出错误 三通:/proc/irq/335/smp_affinity:输入/输出错误
更新。 irqbalance在跑:
$ sudo 服务 irqbalance 状态 irqbalance 启动/运行,进程 560
Documentation/IRQ-affinity.txtLinux 源代码中有一个文件调用。
/proc/irq/IRQ#/smp_affinity specifies which target CPUs are permitted
for a given IRQ source. It's a bitmask of allowed CPUs. It's not allowed
to turn off all CPUs, and if an IRQ controller does not support IRQ
affinity then the value will not change from the default 0xffffffff.
Run Code Online (Sandbox Code Playgroud)
这里的问题是位掩码是十六进制的。所以,如果你有 N 个 CPU,
N=$(grep -c processor /proc/cpuinfo)
Run Code Online (Sandbox Code Playgroud)
为所有 CPU 启用所有 IRQ,您可以在其中有 N 个 CPU
printf %x $((2**N-1)) | sudo tee /proc/irq/*/smp_affinity
Run Code Online (Sandbox Code Playgroud)
内核 3.0 及更高版本有一个名为smp_affinity_list. 此文件采用逗号分隔的 CPU 或 CPU 范围列表。有效示例:0、2,3,5-7、0-7。前面的命令等效于:
echo 0-$((N-1)) | sudo tee /proc/irq/*/smp_affinity_list
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14967 次 |
| 最近记录: |