Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362130
  • 博文数量: 77
  • 博客积分: 1447
  • 博客等级: 中尉
  • 技术积分: 885
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-21 21:48
文章分类

全部博文(77)

文章存档

2021年(2)

2020年(2)

2016年(3)

2015年(1)

2014年(4)

2013年(1)

2012年(23)

2011年(15)

2010年(26)

分类:

2010-07-27 16:34:30

有一个奇怪的要求,在SMP机器上,要将所有的中断绑字到1号CPU上,我打算修改setup_ioapic_dest函数,在 if (intr_remapping_enabled)
set_ir_ioapic_affinity_irq_desc(desc, mask);
else
set_ioapic_affinity_irq_desc(desc, mask);

之前加上下面两句:
cpus_clear(mask);
cpu_set(1, mask);

不知倒底行不行,正在编译内核中。但是,新编的内核在启动时就会失败,因此,此方法行不通。

另一种方法:修改init_irq_default_affinity的实现方法,init_irq_default_affinity所属文件为kernel/irq/handle.c  line:45

将如下代码:
alloc_bootmem_cpumask_var(&irq_default_affinity);
cpumask_setall(irq_default_affinity);
修改为:
alloc_bootmem_cpumask_var(&irq_default_affinity);
cpumask_test_and_set_cpu(0, irq_default_affinity);
编译新的内核后在/proc/irq/default_smp_affinity的内容从ff变为01,但是,中断还是分布在不CPU上,最后通过关闭irqbalance后,则所有的中断就都被移到0号CPU上了(即第一个CPU)


阅读(1288) | 评论(0) | 转发(0) |
0

上一篇:链路层

下一篇:SLAB or SLUB

给主人留下些什么吧!~~