如何找出 CPU 中禁用的内核?
How to figure out disabled cores in a CPU?
我需要找出 CPU 上禁用了哪些内核。我怎样才能以 C/C++ 方式做到这一点?我知道读取 CAPID6 寄存器是其中一种方法,但我不确定如何完成它。有什么我需要注意的系统调用或技巧吗?
我的 OS 是 Ubuntu。我有 Xeon Skylake CPU。我可以通过检查 /sys/devices/system/cpu/cpu*/online 查看文件是否包含 0 或 1(分别表示离线或在线)来查看特定核心是离线还是在线。
我还检查了下面的 link:
我理解 John McCalpin 的回答,但同样,我正在寻找一种 C/C++ 方法来做到这一点。
在 Linux 上支持的方法是简单地读取那些相同的文件。您可以使用 fopen
打开它们,使用 fscanf
阅读它们,等等
我需要找出 CPU 上禁用了哪些内核。我怎样才能以 C/C++ 方式做到这一点?我知道读取 CAPID6 寄存器是其中一种方法,但我不确定如何完成它。有什么我需要注意的系统调用或技巧吗?
我的 OS 是 Ubuntu。我有 Xeon Skylake CPU。我可以通过检查 /sys/devices/system/cpu/cpu*/online 查看文件是否包含 0 或 1(分别表示离线或在线)来查看特定核心是离线还是在线。
我还检查了下面的 link:
我理解 John McCalpin 的回答,但同样,我正在寻找一种 C/C++ 方法来做到这一点。
在 Linux 上支持的方法是简单地读取那些相同的文件。您可以使用 fopen
打开它们,使用 fscanf
阅读它们,等等