在 Linux 内核中查找 CPU 的数量

4
我希望检测Linux内核中CPU的数量,并编写一个系统调用来查找它。 cpuinfo_x86给出一个CPU的特性,而cpu_detect则填充它,但如何查找要检测的CPU数量呢?

Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许超级用户Unix&Linux Stack Exchange更适合提问。另请参阅我应该在哪里发布Dev Ops相关问题? - jww
7
这不是一个编程问题,为什么呢? - abhi
4个回答

6
使用宏NR_CPUS,我们可以找到CPU的数量。由于NR_CPUS是运行时宏,因此不应在早期初始化序列中使用此宏,因为大多数情况下NR_CPUS将未初始化。
或者,您可以使用num_online_cpus()函数获取在线CPU的数量。
您可以在include/linux/cpumask.h头文件中找到更多选项,以查找各种类型的CPU的可用性。

2
您可以使用nr_cpu_ids变量,该变量在内核引导和初始化期间由所有体系结构设置。

-2

尝试:

$lscpu

这为我提供了关于CPU以及架构等方面的信息...


1
这个问题是关于从内核而不是用户空间中找到信息的。 - Tsyvarev
在这种情况下,https://dev59.com/Kmw05IYBdhLWcg3wUAM0 - jedruniu
所提及的问题是关于当前CPU数量,而不是总CPU数量。 - Tsyvarev
在内核模式下而不是用户空间中。 - user3105001

-2

个人而言,我会使用 cat /proc/cpuinfo 命令来了解一台计算机上的 CPU 信息。


2
cat /proc/cpuinfo | grep processor | wc -l - rreck
是的,我确实完全没理解好这个答案。 - rreck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接