这是
lscpu|grep -i numa
在我的 Ubuntu 机器上的输出:
NUMA node(s): 2
NUMA node0 CPU(s): 0-55
NUMA node1 CPU(s): 56-111
但是,当我运行
uname -v
时,它显示
#118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022
顺便说一句,我不是在寻找方法来检查我的机器是否是 NUMA 架构。我知道它是。我对为什么
uname
说SMP很感兴趣。据我了解,SMP 与 NUMA 完全相反。我在这里错过了什么?
我试图通过运行
uname
来跟踪 strace -v -s 512 uname -v
获取那条信息的位置,它显示了
...
uname({sysname="Linux", nodename="GPU-1-1", release="5.4.0-104-generic", version="#118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022", machine="x86_64", domainname="(none)"}) = 0
fstat(1, {st_dev=makedev(0, 0x19), st_ino=831, st_mode=S_IFCHR|0600, st_nlink=1, st_uid=0, st_gid=5, st_blksize=1024, st_blocks=0, st_rdev=makedev(0x88, 0x33c), st_atime=1683342152 /* 2023-05-06T11:02:32.595337156+0800 */, st_atime_nsec=595337156, st_mtime=1683342152 /* 2023-05-06T11:02:32.595337156+0800 */, st_mtime_nsec=595337156, st_ctime=1683341169 /* 2023-05-06T10:46:09.879337351+0800 */, st_ctime_nsec=879337351}) = 0
write(1, "#118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022\n", 44#118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022
...
版本信息好像直接来自一个
uname
系统调用。我不是 Linux 或 C 编程专家。如果以下问题看起来很愚蠢,请原谅我。但是为什么它用结构字面量调用uname
函数呢?信息是硬编码的吗?