linux – 如何确定PowerPC和Power 8(及更高版本)上的CPU功能?

我们可以在Intel和ARM机器上检查/ proc / cpuinfo来学习cpu功能,比如AES和SHA.我需要在AIX和Linux下为PowerPC做同样的事情.

使用Linux进行测试如下所示.输出在compile farm上由GCC112产生.

$cat /proc/cpuinfo
processor       : 0
cpu             : POWER8E (raw), altivec supported
clock           : 2061.000000MHz
revision        : 2.1 (pvr 004b 0201)
...

processor       : 159
cpu             : POWER8E (raw), altivec supported
clock           : 2061.000000MHz
revision        : 2.1 (pvr 004b 0201)

timebase        : 512000000
platform        : PowerNV
model           : 8247-22L
machine         : PowerNV 8247-22L
firmware        : OPAL v3

GCC112是Power 8机器.我应该看到像VMX,AES,SHA,PMULL等标志.VMX大致相当于英特尔SSE和ARM NEON的PowerPC.

我在comp.os.linux.powerpc上找到了一些像/proc/cpuinfo这样的相关讨论.我也找到了What do we check on a new system?,但它缺乏像cpu功能这样的有用细节.最后,在What do the flags in /proc/cpuinfo mean?有一个相关问题,但它没有讨论PowerPC.

GCC似乎通过使用built-ins向C程序提供信息.例如,有一个vsx测试和一个vcrypto测试.问题是,我正在使用Bash脚本而不是C程序.

我也不知道AIX的用途. AIX于GCC119 0700上发布.

如何在AIX和Linux上获得PowerPC cpu功能?

解决方法:

我不确定为什么/ proc / cpuinfo或lscpu不会显示标志信息.我找到了linux内核https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/arch/powerpc/include/asm/cputable.h?id=refs/tags/v4.9已知的标志列表

我刚刚发现你可以查找ELF辅助向量,它将向你展示一些硬件功能.

$LD_SHOW_AUXV=1 /bin/true
AT_SYSINFO_EHDR: 0x7ffdcd0e6000
AT_HWCAP:        bfebfbff
AT_PAGESZ:       4096
AT_CLKTCK:       100
AT_PHDR:         0x5591e6663040
AT_PHENT:        56
AT_PHNUM:        9
AT_BASE:         0x7f2ae4f79000
AT_FLAGS:        0x0
AT_ENTRY:        0x5591e6664670
AT_UID:          1000
AT_EUID:         1000
AT_GID:          1000
AT_EGID:         1000
AT_SECURE:       0
AT_RANDOM:       0x7ffdcd044399
AT_HWCAP2:       0x0
AT_EXECFN:       /bin/true
AT_PLATFORM:     x86_64

^^你的AT_HWCAP将有标志信息.蒙面.我在互联网上看过有这个条目解码的样本.不幸的是,我无法访问ppc硬件进行测试.

lscpu应该在AIX上可用,也许它会显示CPU标志?

上一篇:linux – 如何关闭或重启机器? [在不同的操作系统上]


下一篇:超详细Linux新手快速入门(一)——Linux的介绍安装以及虚拟机的介绍安装