Linux kernel 如何检查内核中是否启用或禁用了SMP?

Linux kernel 如何检查内核中是否启用或禁用了SMP?,linux-kernel,embedded-linux,Linux Kernel,Embedded Linux,我想知道如何在我正在运行的机器上检查内核是否配置为SMP?当然,我可以查看内核.config文件并搜索它。但是,问题是,假设我没有源代码,我将如何检查SMP配置?是否有任何程序文件来检查它 以下说明我没有多核: #cat /proc/cpuinfo processor : 1 cpu model : Broadcom BMIPS5000 V1.1 FPU V0.1 BogoMIPS : 651.26 cpu

我想知道如何在我正在运行的机器上检查内核是否配置为SMP?当然,我可以查看内核
.config
文件并搜索它。但是,问题是,假设我没有源代码,我将如何检查SMP配置?是否有任何程序文件来检查它

以下说明我没有多核:

#cat /proc/cpuinfo

processor               : 1
cpu model               : Broadcom BMIPS5000 V1.1  FPU V0.1
BogoMIPS                : 651.26
cpu MHz                 : 1305.018
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 64
extra interrupt vector  : yes
hardware watchpoint     : no
ASEs implemented        :
shadow register sets    : 1
kscratch registers      : 0
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available
uname-a
的输出表示:

Linux 136.170.193.3 3.3.8-2.4 #2 SMP Fri Dec 13 07:11:03 EST 2013 mips GNU/Linux
这里有点混乱。评论中有人建议我检查
uname-a
。我不确定结果是否可靠。我是否可以假设通过
uname-a
生成的关键字SMP,内核被配置为SMP

我可以假设吗 使用uname-a生成的关键字SMP,内核是 配置为SMP


对。uname返回的版本字符串是在编译内核时生成的

在Linux配置中,检查
CONFIG\u SMP=y
。如果设置了此配置,那么内核将使用对称多处理运行


在/boot中找到您的配置文件(在ubuntu上通常文件名为
config-$(uname-r)
),或者在嵌入式系统中检查
/proc/config.gz

它是
CONFIG\u SMP=y
,而不是
CONFIG\u CMP=y

zcat /proc/config.gz | grep CONFIG_SMP
如果是台式机, 从/boot目录和grep中找到您的配置文件,它应该是
=y

“top”命令可能有助于实现这一点,您可以通过使用-

顶H

然后按
f
进入字段选择,然后按
j
启用CPU核心列,然后按
Enter
显示

核心信息将显示在
p
列下

只需使用

ps

命令并检查cpu id

你甚至可以使用

ps-ef


uname-a说明了这一点吗?在编译时不知道它与SMP配置有什么关系。