【问题标题】:by which instruction the secondary core is triggered while starting the secondary cpu在启动辅助 cpu 时通过哪个指令触发辅助内核
【发布时间】:2015-03-18 18:49:37
【问题描述】:

辅助 CPU 的启动由主核心启动。并且在主cpu上完成了一些工作,在辅助cpu上完成了一些工作以完成cpu_up的热插拔操作。

我试图找到在主 cpu 上执行的确切指令,触发辅助 cpu 启动,并且进一步检查 pen_release 变量的值。

能否请您解释一下启动辅助cpu的过程,以及在启用SMP的Linux内核中使用pen_release global。

【问题讨论】:

  • 这完全取决于平台 - 在某些平台上,可能需要相当多的硬件戳序列才能启动辅助内核并将其从重置中释放;在其他情况下,辅助设备可能已经在 WFI 中的固件持有笔中等待发布地址。你将不得不缩小范围。
  • @Notlikethat 我们使用的是 ARM,我已经跟踪了在 WFI 指令上设置辅助的情况,在这种情况下,从主内核释放笔将起作用.. 但我想了解流程当辅助设备掉电时,我们正在从主设备发出一些指令以启动辅助设备...从哪个 API 或指令我们从主 CPU 执行唤醒操作。
  • 改写;电源控制器、固件和其他涉及的任何东西都特定于 系统,与 CPU 无关——“ARM”或多或少无关紧要。 IE。三星 ARM 芯片与全志 ARM 芯片不同;三星 Exynos 5 与三星 Exynos 4 不同; Exynos 5422 不一定与 Exynos 5420 相同;一个基于 Exynos 5422 的板可能具有与另一个基于 Exynos 5422 的板不同的固件 API。 没有通用的答案 - 如果您想了解您正在使用的确切系统的详细信息,那么您需要提供必要的信息。

标签: linux linux-kernel arm embedded-linux smp


【解决方案1】:

在 Linux v4.19 + QEMU 3.0.0 aarch64 上,我已经逐步调试了 Linux 内核,直到 PSCI CPU_ON 调用使用 hvc 指令唤醒辅助内核,如下所述:ARM: Start/Wakeup/Bringup the other CPU cores/APs and pass execution start address?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2016-10-30
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    相关资源
    最近更新 更多