Bug 1882740
Summary: | lscpu: use SMBIOS Type 4 strings for CPU vendor and model on ARM | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Jeff Bastian <jbastian> |
Component: | util-linux | Assignee: | Karel Zak <kzak> |
Status: | CLOSED ERRATA | QA Contact: | Jeff Bastian <jbastian> |
Severity: | low | Docs Contact: | |
Priority: | medium | ||
Version: | 8.3 | CC: | ahs3, efuller, jlinton, mas, mmizuma, pbunyan |
Target Milestone: | rc | ||
Target Release: | 8.4 | ||
Hardware: | aarch64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | util-linux-2.32.1-25.el8 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-05-18 15:08:07 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Jeff Bastian
2020-09-25 14:08:41 UTC
Another example using an Amazon AWS m6g.large instance: [ec2-user@ip-172-31-81-6 ~]$ /usr/bin/lscpu | grep -i -e vendor -e model -e stepping Vendor ID: ARM Model: 1 Stepping: r3p1 [ec2-user@ip-172-31-81-6 ~]$ ./lscpu | grep -i -e vendor -e model -e stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 And one more using an Ampere Altra: [root@ampere-altra-01 ~]# /usr/bin/lscpu | grep -i -e vendor -e model -e stepping Vendor ID: ARM Model: 1 Stepping: r3p1 [root@ampere-altra-01 ~]# ./lscpu | grep -i -e vendor -e model -e stepping Vendor ID: Ampere(TM) Model: 1 Model name: Ampere(TM) Altra(TM) Processor Stepping: 0x3 Fixed by upstream commit https://github.com/karelzak/util-linux/commit/367c85c472869b75eaf770d4be0b360e30710b95. Just pulling the RHEL lscpu-arm.c file forward to get the updated tables is going to fix a bunch of these. Its almost the kind of thing that need to be done for every point release, as that is about the frequency of updates. Hi Jeff and Jeremy, I posted two patches related to lscpu module name issue. I would appreciate it if you could review them. https://marc.info/?l=util-linux-ng&m=160489105817625&w=2 https://marc.info/?l=util-linux-ng&m=160489105817626&w=2 Thanks! Masa Yes, it looks like my comments in IRC made it to you. I will see if I can pick up the thread in my email client. As a future ref though, please cc jeremy.linton on these kinds of patches. Thanks, Masa, Jeff, and Jeremy, I need your help with the backport verification. Please, try the build below on your ARMs. Note that I have worked on bug #1882740 and bug #1883056 together. I have backported all the ARM related patches -- note that simple git-cherry-pick to the old RHEL-8 code was impossible in some cases. RHEL-8 Commits: lscpu: (arm) read vendor and model from BIOS https://gitlab.cee.redhat.com/kzak/util-linux/-/commit/880958fe818c5bc9fb4a1a1cdcd241d90e7fb179 lscpu: show physical socket on aarch64 without ACPI PPTT https://gitlab.cee.redhat.com/kzak/util-linux/-/commit/5b20e51f98798161138f0758af845c43931f59ba lscpu: add helper to get physical sockets https://gitlab.cee.redhat.com/kzak/util-linux/-/commit/32c4fe66ae9107a7fae556be02c1401e5046071b lscpu-dmi: split to parse dmi table https://gitlab.cee.redhat.com/kzak/util-linux/-/commit/60a1a900b22e6d714fbbde03322569ad4732b4ba lscpu: use cluster on aarch64 machine which doesn't have ACPI PPTT https://gitlab.cee.redhat.com/kzak/util-linux/-/commit/63d8d3e8d54326842677bc3d3a3e43a133846a71 lscpu: update ARM identifiers tables https://gitlab.cee.redhat.com/kzak/util-linux/-/commit/6700a458ef1bcd8fe2c066411bc415bc43ccdb8a Build: util-linux-2.32.1-25.el8 https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=33817025 (I can copy the RPMs to another place if you have no access to brew web.) Masa, Jeff, and Jeremy, can you test RHEL8.4 lscpu? (see comment #8) Thanks! Output of lscpu from util-linux-2.32.1-26.el8 on several different aarch64 systems in our Beaker lab. I checked both as root and a "test" user. ==================== Amazon AWS m6g.metal ==================== [ec2-user ~]$ sudo dmidecode | grep -i -m1 "Product Name:" Product Name: m6g.metal [ec2-user ~]$ sudo lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 [ec2-user ~]$ lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 ==================== Amazon AWS m6g.large ==================== [ec2-user ~]$ sudo dmidecode | grep -i -m1 "Product Name:" Product Name: m6g.large [ec2-user ~]$ sudo lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM BIOS Vendor ID: AWS Model: 1 Model name: Neoverse-N1 BIOS Model name: AWS Graviton2 Stepping: r3p1 [ec2-user ~]$ lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 ==================== Amazon AWS t4g.large ==================== [ec2-user ~]$ sudo dmidecode | grep -i -m1 "Product Name:" Product Name: t4g.large [ec2-user ~]$ sudo lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM BIOS Vendor ID: AWS Model: 1 Model name: Neoverse-N1 BIOS Model name: AWS Graviton2 Stepping: r3p1 [ec2-user ~]$ lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 ============ Ampere Altra ============ [root@ampere-altra ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM BIOS Vendor ID: Ampere(TM) Model: 1 Model name: Neoverse-N1 BIOS Model name: Ampere(TM) Altra(TM) Processor Stepping: r3p1 [root@ampere-altra ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 ======================= AppliedMicro Mustang B0 ======================= [root@apm-mustang-b0 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM BIOS Vendor ID: AmpereComputing(R) Model: 1 Model name: X-Gene BIOS Model name: B0 Stepping: 0x0 [root@apm-mustang-b0 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM Model: 1 Model name: X-Gene Stepping: 0x0 ================= Broadcom Stingray ================= [root@broadcom-stingray ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM BIOS Vendor ID: ARM Model: 3 Model name: Cortex-A72 BIOS Model name: v8 Stepping: r0p3 [root@broadcom-stingray ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 3 Model name: Cortex-A72 Stepping: r0p3 ============ Cavium Sabre ============ [root@cavium-sabre ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: Cavium Inc. Model: 1 Model name: ThunderX2 99xx BIOS Model name: Cavium ThunderX2(R) CPU CN9975 v2.1 @ 2.20GHz Stepping: 0x1 [root@cavium-sabre ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 1 Model name: ThunderX2 99xx Stepping: 0x1 ============= Fujitsu FX700 ============= [root@fujitsu-fx700 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: FUJITSU BIOS Vendor ID: FUJITSU Model: 0 Model name: A64FX BIOS Model name: 461F0010 Stepping: 0x1 [root@fujitsu-fx700 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: FUJITSU Model: 0 Model name: A64FX Stepping: 0x1 ============= Gigabyte R120 ============= [root@gigabyte-r120 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: CN8880-1800BG2601-CP-Y-G Model: 1 Model name: ThunderX 88XX BIOS Model name: 2.1 Stepping: 0x1 [root@gigabyte-r120 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 1 Model name: ThunderX 88XX Stepping: 0x1 ============= Gigabyte R270 ============= [root@gigabyte-r270 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: CN8890-1800BG2601-AAP-Y-G Model: 1 Model name: ThunderX 88XX BIOS Model name: 2.1 Stepping: 0x1 [root@gigabyte-r270 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 1 Model name: ThunderX 88XX Stepping: 0x1 ============= Gigabyte R181 ============= [root@gigabyte-r181 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: Cavium Inc. Model: 2 Model name: ThunderX2 99xx BIOS Model name: Cavium ThunderX2(R) CPU CN9975 v2.2 @ 2.0GHz Stepping: 0x1 [root@gigabyte-r181 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 2 Model name: ThunderX2 99xx Stepping: 0x1 ================= HPE Moonshot m400 ================= [root@hpe-moonshot-m400 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM BIOS Vendor ID: AppliedMicro Model: 1 Model name: X-Gene BIOS Model name: X-Gene Stepping: 0x0 [root@hpe-moonshot-m400 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM Model: 1 Model name: X-Gene Stepping: 0x0 ============= HPE Apollo 70 ============= [root@hpe-apollo-70 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: Cavium Inc. Model: 1 Model name: ThunderX2 99xx BIOS Model name: Cavium ThunderX2(R) CPU CN9980 v2.1 @ 2.20GHz Stepping: 0x1 [root@hpe-apollo-70 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 1 Model name: ThunderX2 99xx Stepping: 0x1 ============================= HPE Apollo 70 Virtual Machine ============================= [root@hpe-apollo-70-vm ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: QEMU Model: 1 Model name: ThunderX2 99xx BIOS Model name: virt-rhel7.6.0 Stepping: 0x1 [root@hpe-apollo-70-vm ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 1 Model name: ThunderX2 99xx Stepping: 0x1 ============= HPE Apollo 80 ============= [root@hpe-apollo-80 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: FUJITSU BIOS Vendor ID: FUJITSU Model: 0 Model name: A64FX BIOS Model name: 461F0010 Stepping: 0x1 [root@hpe-apollo-80 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: FUJITSU Model: 0 Model name: A64FX Stepping: 0x1 ====================== Lenovo HR330a / HR350a ====================== [root@ampere-hr350a-05 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM BIOS Vendor ID: Ampere(TM) Model: 2 Model name: X-Gene BIOS Model name: eMAG Stepping: 0x3 [root@ampere-hr350a-05 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM Model: 2 Model name: X-Gene Stepping: 0x3 ==================== Mellanox Bluefield 2 ==================== [root@mellanox-bluefield2 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM BIOS Vendor ID: https://www.mellanox.com Model: 0 Model name: Cortex-A72 BIOS Model name: Mellanox BlueField-2 [A0] A72(D08) r1p0 Stepping: r1p0 [root@mellanox-bluefield2 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 0 Model name: Cortex-A72 Stepping: r1p0 ============== Penguin Valkre ============== [root@penguin-valkre ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium BIOS Vendor ID: CN8890-2000BG2601-AAP-PR-Y-G Model: 0 Model name: ThunderX 88XX BIOS Model name: 2.0 Stepping: 0x1 [root@penguin-valkre ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Cavium Model: 0 Model name: ThunderX 88XX Stepping: 0x1 ================== Qualcomm Amberwing ================== [root@qualcomm-amberwing ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Qualcomm BIOS Vendor ID: Qualcomm Model: 1 Model name: Falkor BIOS Model name: 2.0 Stepping: 0x0 [root@qualcomm-amberwing ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: Qualcomm Model: 1 Model name: Falkor Stepping: 0x0 All of the output in comment 12 looks good. I like this new method of showing both the internally decoded name along with the SMBIOS strings. (In reply to Jeff Bastian from comment #13) > All of the output in comment 12 looks good. Jeff thanks for all the tests! > I like this new method of > showing both the internally decoded name along with the SMBIOS strings. Yes, now when I see all the strings it's more obvious. This one is a winner: Vendor ID: ARM BIOS Vendor ID: https://www.mellanox.com ;-) I tested with util-linux-2.32.1-27.el8.aarch64. It looks good! $ lscpu | grep -e Vendor -e Model Vendor ID: FUJITSU Model: 0 Model name: A64FX $ # lscpu | grep -e Vendor -e Model Vendor ID: FUJITSU BIOS Vendor ID: FUJITSU Model: 0 Model name: A64FX BIOS Model name: 460F0010 # Thanks! Masa Re-verification with util-linux-2.32.1-27.el8 on RHEL-8.4.0-20210202.n.0 on a subset of the systems from comment 12. ============= HPE Apollo 80 ============= [root@hpe-apollo80 ~]# rpm -q util-linux util-linux-2.32.1-27.el8.aarch64 [root@hpe-apollo80 ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: FUJITSU BIOS Vendor ID: FUJITSU Model: 0 Model name: A64FX BIOS Model name: 461F0010 Stepping: 0x1 [root@hpe-apollo80 ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: FUJITSU Model: 0 Model name: A64FX Stepping: 0x1 ============= Lenovo HR330A ============= [root@lenovo-hr330a ~]# rpm -q util-linux util-linux-2.32.1-27.el8.aarch64 [root@lenovo-hr330a ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM BIOS Vendor ID: Ampere(TM) Model: 2 Model name: X-Gene BIOS Model name: eMAG Stepping: 0x3 [root@lenovo-hr330a ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: APM Model: 2 Model name: X-Gene Stepping: 0x3 ============ Ampere Altra ============ [root@ampere-altra ~]# rpm -q util-linux util-linux-2.32.1-27.el8.aarch64 [root@ampere-altra ~]# lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM BIOS Vendor ID: Ampere(TM) Model: 1 Model name: Neoverse-N1 BIOS Model name: Ampere(TM) Altra(TM) Processor Stepping: r3p1 [root@ampere-altra ~]# sudo -u test lscpu | grep -e Vendor -e Model -e Stepping Vendor ID: ARM Model: 1 Model name: Neoverse-N1 Stepping: r3p1 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (util-linux bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2021:1694 |