【问题标题】:Should I enable SMP on heterogeneous multi-threaded CPU's?我应该在异构多线程 CPU 上启用 SMP 吗?
【发布时间】:2018-10-28 03:19:03
【问题描述】:

我正在为 big.LITTLE 板构建 Linux 内核,我一直想知道 CONFIG_SMP 选项,它启用内核的对称处理支持。 Linux 的文档说这应该在多线程处理器上启用,但我想知道对称多处理是否不仅可以在实际上对称的处理器上正常工作。 我了解 SMP 是什么,但我没有找到任何提示或文档说明它在为 ARM 的 big.LITTLE 构建的 Linux 上的使用。

【问题讨论】:

标签: linux-kernel arm smp


【解决方案1】:

是的,如果您想使用多个内核,您必须启用 CONFIG_SMP。这本身将使所有内核(无论大小)都可用于内核。

然后,您有两个选择(我假设您使用的是主线 Linux 内核或与它没有太大区别的东西,例如不是 Android 内核):

  1. 如果您还启用了 CONFIG_BL_SWITCHER (-> 内核功能 -> big.LITTLE 支持 -> big.LITTLE 切换器支持) 和 CONFIG_ARM_BIG_LITTLE_CPUFREQ (-> CPU 电源管理 -> CPU 频率缩放 -> CPU 频率缩放 -> 通用 ARM big LITTLE CPUfreq 驱动程序),您的 SoC 中的每个大核心都将与一个小核心配对,并且在任何给定时间,每对中只有一个核心将处于活动状态,具体取决于 CPU 负载。所以基本上逻辑核数是物理核数的一半,每个逻辑核会结合一个物理大核和一个物理小核(除非总的大核数和小核数不同,在这种情况下)会有非配对的物理核心也是逻辑核心)。对于每个逻辑核心,大物理核心和小物理核心之间的切换将由 cpufreq 调控器管理,并且在概念上等同于 CPU 频率切换。
  2. 如果您不启用上述两个配置选项,则所有物理内核都将作为逻辑内核使用,可以同时处于活动状态,并且被调度程序视为相同。

如果您的目标是低功耗,第一个选项更适合,而第二个选项可以让您充分利用 CPU。

当异构多处理 (HMP) 支持集成到主线内核中时,这将改变。

【讨论】:

    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多