clbr / radeontop

GNU General Public License v3.0
785 stars 69 forks source link

UNKNOWN_CHIP with Navi31 #151

Open danielgarciagarcia opened 1 year ago

danielgarciagarcia commented 1 year ago

Running radeontop 1.4 on Arch Linux (kernel version 6.1.2). The application doesn't recognize the chip name.

image

clbr commented 1 year ago

The git version has some more pci ids. You can check what your card is with "lspci -vnn".

danielgarciagarcia commented 1 year ago

Installed radeontop-git package and the GPU is still shown as UNKNOWN_CHIP.

The result of lspci -vnn is:

03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX] [1002:744c] (rev c8) (prog-if 00 [VGA controller]) Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:0e3b] Flags: bus master, fast devsel, latency 0, IRQ 176 Memory at 4800000000 (64-bit, prefetchable) [size=32G] Memory at 4400000000 (64-bit, prefetchable) [size=2M] I/O ports at 3000 [size=256] Memory at a0300000 (32-bit, non-prefetchable) [size=1M] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: Kernel driver in use: amdgpu

clbr commented 1 year ago

744c is indeed not yet in there. The last update was from the 6.1 kernel, so it may take some time.

danielgarciagarcia commented 1 year ago

Would you mind elaborating what do we have to wait for exactly? I don't know how the GPU data is retrieved by the application.

clbr commented 1 year ago

For the kernel to add it, and for me/someone else to do a sync.

abc-mikey commented 1 year ago

+1

danielgarciagarcia commented 1 year ago

Reported the missing PCI ID to the driver maintainers. I'll be keeping an eye when they upstream the new IDs to the kernel and report back here to update the r600_pci_ids.h list.

danielgarciagarcia commented 1 year ago

@clbr take a look to this response: https://gitlab.freedesktop.org/drm/amd/-/issues/2336#note_1713423

The PCI ID list from which r600_pci_ids.h populates apparently is no longer updated and the driver moved to a IP driven device enumeration. They recommend looking into this file from the Mesa project instead of amdgpu_drv.c file from the kernel radeontop currently uses.

Umio-Yasuno commented 1 year ago

radeontop uses PCI IDs (DeviceIDs) for detection of the AMDGPU chip.
However, Mesa3D RadeonSI driver uses family_id and chip_external_rev for detection.
I think the same method would be useful as a primary method or fallback.

https://gitlab.freedesktop.org/mesa/mesa/blob/main/src/amd/addrlib/src/amdgpu_asic_addr.h https://gitlab.freedesktop.org/mesa/mesa/blob/main/src/amd/common/amd_family.c