intel / ipmctl

BSD 3-Clause "New" or "Revised" License
183 stars 62 forks source link

ipmctl show -topology , it returns "No DIMMs in the system." #178

Closed jiangjiaqi6 closed 2 years ago

jiangjiaqi6 commented 2 years ago

I have two Intel Optane Persistent Memorys on my server,each of which has a capacity of 252GB. OS: 20.04 CPU: Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz ipmctl:Version 02.00.00.3709 BIOS: BIOS Information Vendor: American Megatrends Inc. Version: 3.4 Release Date: 11/03/2020 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 32 MB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported BIOS ROM is socketed EDD is supported 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 kB floppy services are supported (int 13h) 3.5"/2.88 MB floppy services are supported (int 13h) Print screen service is supported (int 5h) Serial services are supported (int 14h) Printer services are supported (int 17h) ACPI is supported USB legacy is supported BIOS boot specification is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 5.14 ipmctl show -system Error: Failed to find the NVDIMM Firmware Interface ACPI tables Error: Failed to find the PCAT tables PMTT table not found.

The information I can provide, what should I do next to solve this bug?

sscargal commented 2 years ago

@jiangjiaqi6 To solve the "PMTT table not found" error, use a newer version of ipmctl that can identify the memory topology on platforms without the PMTT. You can either build ipmctl from the source, or update the packages. If you're using CentOS, Fedora, RHEL, etc ipmctl-02.00.00.3885 is available in the EPEL repo.

The missing "NVDIMM Firmware Interface ACPI tables" is concerning. What system manufacturer/model are you using? dmidecode -t baseboard

Q) What generation of PMem are you using? The Cascade Lake CPU (5218) supports Optane 100 Series (Apache Pass). Q) Do you see the PMem listed in the Memory section of the BIOS or BMC interfaces? If not, this is a platform support problem.

StevenPontsler commented 2 years ago

@jiangjiaqi6

If those tables are missing that will be a problem. Newer releases of ipmctl have changes to try and work around some missing tables (the PMTT table in particular). I believe the latest is 02.00.00.3885. If you have series 100 modules (1st gen) you could try the latest 01.00.00.xxxx release.

What modules do you have installed?

Running the command with -v option and posting the output here might provide an additional clue (ipmctl show -v -system) though I expect it will be the missing tables.

jiangjiaqi6 commented 2 years ago

Thank you for your reply. When I use "sudo ipmctl show -topology" ,it returns correct information. It's very strange. I don't know why, can you give me an explanation?

sscargal commented 2 years ago

@jiangjiaqi6 Do you have the same issue when using ipmctl v02.00.00.3885? If so, can you provide the following debug logs:

dmidecode -t baseboard
dmidecode -t memory
ipmctl show -v system
ipmctl show -v topology
ipmctl show -v pcd

Q) What other ipmctl commands work or return errors? Q) Were you able to configure the platform in either Memory Mode or App Direct? Q) If you are using AppDirect, were you able to create the namespaces using ndctl?

StevenPontsler commented 2 years ago

The tables ipmctl uses do require root privileges to access them. There are a few commands that do not require ipmctl to be run as root (version and help come to mind).

When I try the ipmctl show -system on my test system as a non-root user I get the message:

Sorry, the ipmctl command you have attempted to execute requires root privileges.

I would expect you to see that same error message.

Are you trying to run the command as root? What uid does the id command return? What OS are you using? Ubuntu 20.04?

jiangjiaqi6 commented 2 years ago

@sscargal Now all other ipmctl commands work. StevenPontsler's reply solved my doubts.

jiangjiaqi6 commented 2 years ago

@StevenPontsler When I try the ipmctl show -system on my test system as a non-root user I get the message: "No DIMMs in the system". When I have root privileges, I can access them. I don not know id command, can you give me an example to how to use? OS:ubuntu 20.04

sscargal commented 2 years ago

See #172 which reported similar problems for non-root users. The issue seems to report differently on different OS distros (not fully validated).

StevenPontsler commented 2 years ago

The id command is simply ran at the shell prompt

I ran it as root and it looked like this on my system

root@localhost:tmp # id uid=0(root) gid=0(root) groups=0(root) root@localhost:tmp #