【问题标题】:setting cpu affinity for linux kernel, not process [closed]为linux内核设置cpu亲和力,而不是进程[关闭]
【发布时间】:2011-09-19 20:06:53
【问题描述】:

我很难找到有关如何为 linux 内核(及其所有加载的模块)设置 cpu 亲和性的信息,而不是针对特定进程。

这是因为我希望内核一直在 CPU 0 上运行以处理 I/O 内容,而不是在其他 3 个 CPU 上运行任何切换,因为它可能会污染 L1 和 L2 缓存。

提前致谢。

努利克

【问题讨论】:

  • 我相信它可能已经这样做了——至少中断处理程序似乎总是在核心 0 上运行。
  • 我在一篇文章中读到内核可能在不同的内核中运行,当我检查一些源文件时,有许多“自旋锁”调用,即它锁定是因为内核代码可能并行执行在不同的 CPU 上
  • @Nulik:用户线程进行的系统调用将导致内核在许多不同的内核上运行。不过,这与并行中断处理非常不同。
  • 不知道问题为何被关闭。设置亲和力具有完全编程的意图。投票支持重新开放。
  • 我不认为这是一个离题的问题。

标签: linux kernel affinity


【解决方案1】:

代表进程的内核工作将始终发生在发出请求的 CPU 上。不过,您可以控制中断。查看/proc/interrupts 以识别您想要移动的中断(比如与eth0 匹配的所有内容)并通过将十六进制掩码回显到/proc/irq/XXX/smp_affinity 来设置关联。

【讨论】:

    【解决方案2】:

    您应该能够通过内核命令行选项禁用其他内核。

    内核不在内核上运行意味着其他任何东西都不能在该内核上运行。没有内核调度程序,也没有 TLB 设置 -> 没有代码执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 2022-12-05
      • 1970-01-01
      相关资源
      最近更新 更多