我需要找出 CPU 上禁用了哪些内核。如何以 C/C++ 方式执行此操作?我知道读取 CAPID6 寄存器是其中一种方法,但我不确定如何完成它。我需要注意任何系统调用或技巧吗?
我的操作系统是 Ubuntu。我有 Xeon Skylake CPU。我可以通过检查 /sys/devices/system/cpu/cpu*/online 来查看特定内核是脱机还是联机,以查看文件是否包含 0 或 1,分别表示脱机或联机。
我还检查了下面的链接:
我理解 John McCalpin 的回答,但我再次在寻找一种 C/C++ 方式来做到这一点。