gpt4 book ai didi

assembly - 是否有 `x86` 指令来告诉该指令正在哪个核心上运行?

转载 作者:行者123 更新时间:2023-12-02 16:58:43 25 4
gpt4 key购买 nike

当我 cat/proc/cpuinfo 时,我看到 8 个核心,ID 从 07

是否有一个 x86 指令会报告该指令本身正在运行的核心的核心 ID?

我查看了cpuid,但在任何参数设置下似乎都没有返回coreid

最佳答案

英特尔® 64 和 IA-32 架构软件开发人员手册第 3A 卷:系统编程指南,第 1 部分8.4.5 识别 MP 系统中的逻辑处理器部分列表等:

This APIC ID is reported by CPUID.0BH:EDX[31:0]

请注意,这并不直接等同于 Linux 内核的编号。在内核中有一个可以读取的x86_cpu_to_apicid表。当然,内核也知道代码在哪个 cpu 上执行,而无需查阅 APIC:

 * smp_processor_id(): get the current CPU ID.
*
* if DEBUG_PREEMPT is enabled then we check whether it is
* used in a preemption-safe way. (smp_processor_id() is safe
* if it's used in a preemption-off critical section, or in
* a thread that is bound to the current CPU.)

关于assembly - 是否有 `x86` 指令来告诉该指令正在哪个核心上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com