aristocratos / bpytop

Linux/OSX/FreeBSD resource monitor
Apache License 2.0
10.08k stars 398 forks source link

[BUG] Ryzen 3500U per-core temps not showing #256

Open RedBearAK opened 3 years ago

RedBearAK commented 3 years ago

bpytop version: 1.0.61 psutil version: 5.8.0

Acer Aspire 5 Slim (Ryzen 5 3500U variant) LInux Mint 20.1

I haven't been keeping up with recent changes so I can't say for sure this is a bug, but I have updated BPyTOP on a Mojave MacBook Pro with a 4-core, 8-thread Intel CPU and I still see per-core temps when "Check temp" is enabled, so I am assuming this is a bug.

The CPU core graphs get longer and I see the main CPU temp displayed, but the per-core temps do not appear when enabling "Check temp" on a Ryzen 5 3500U system. See screenshots.

Check temp OFF:

ryzen3500u_temps_off_tall

Check temp ON:

ryzen3500u_temps_on_tall

aristocratos commented 3 years ago

@RedBearAK
Is Show coretemp set to True in the options? If so it's possible the CPU doesn't follow the regular naming scheme for the cores, should be Tccd for Ryzen. In earlier versions the CPU package temp was copied to the cores if the cores were missing.

Check what output you get from sensors and python3 -c 'import pprint, psutil; pp = pprint.PrettyPrinter(); pp.pprint(psutil.sensors_temperatures())'

RedBearAK commented 3 years ago

@aristocratos

I've been away so long I didn't realize you had a separate option specifically for core temps. But it was set by default to True and seems to have no effect on the CPU graph when cycled. I even tried various combinations of turning Check temp on and off while Show coretemp was either on or off. Same results as in the screenshots above.

Output from sensors:

ath10k_hwmon-pci-0400
Adapter: PCI adapter
temp1:        +54.0°C  

amdgpu-pci-0500
Adapter: PCI adapter
vddgfx:           N/A  
vddnb:            N/A  
edge:         +43.0°C  (crit = +80.0°C, hyst =  +0.0°C)

k10temp-pci-00c3
Adapter: PCI adapter
Tdie:         +43.1°C  (high = +70.0°C)
Tctl:         +43.1°C  

BAT1-acpi-0
Adapter: ACPI interface
in0:          12.90 V  
curr1:         0.00 A  

Output from the python command:

{'amdgpu': [shwtemp(label='edge', current=43.0, high=80.0, critical=80.0)],
 'ath10k_hwmon': [shwtemp(label='', current=47.0, high=None, critical=None)],
 'k10temp': [shwtemp(label='Tdie', current=43.0, high=70.0, critical=70.0),
             shwtemp(label='Tctl', current=43.0, high=None, critical=None)]}

Does this mean this particular CPU model is not reporting the individual core temps, or maybe psutil doesn't know how to access them, or something like that? Looks like another instance of a "blank" label in ath10k_hwmon. Not sure if that makes any difference. So there's only Tdie and Tctl showing. Quick googling says the ath10k_hwmon may be a wifi card, so probably irrelevant. And of course the only other sensor showing is the GPU temp.

aristocratos commented 3 years ago

@RedBearAK

Does this mean this particular CPU model is not reporting the individual core temps

Looks to be the case, might be the norm for Ryzen mobile chips.

aristocratos commented 3 years ago

@RedBearAK Closing this since there is nothing for me to do here.

zampierilucas commented 3 years ago

I'll like to reopen this issue,

Does this mean this particular CPU model is not reporting the individual core temps

No, AMD does not report per-core temperatures, they do have per-core sensors, but only the hottest core gets reported¹.

This gets to my point, as of lately, bpytop has been showing CPU temps per-core on my Ryzen 3700x, even though they are all the same, no variation per core due to the data not being present, see below: 2021-09-04_11-25

I think we should drop the per-core data propagation in the Ryzen family, thoughts?

[1] https://developer.amd.com/resources/developer-guides-manuals/

aristocratos commented 3 years ago

@zampierilucas

See #148 and https://github.com/aristocratos/bashtop/issues/48

The coretemps reported should be the temp for the CCD the core belongs to (which might be the highest coretemp for the CCD possibly?). This may not be the case for all ryzen cpu's (like on the mobile chips), but dropping coretemp support for ryzen overall would not be a good solution.

And the coretemps can still be toggled off manually by setting show_coretemp to false in the options if the user don't care for it.

ghost commented 2 years ago

Similar issue happens to me on zen 5000 desktops

ghost commented 2 years ago

image It doesn't even recognize the cpu properly

RedBearAK commented 2 years ago

image It doesn't even recognize the cpu properly

@meimei35

What do you see after running:

lscpu | grep -i "model name"

Running BpyTOP v1.0.68 on a Ryzen 7 3700U laptop shows a very different top bar. Are you running an old version? It shouldn't be displaying any common pattern like "AMD" or "Intel" or "CPU". Those were all filtered out pretty effectively in BpyTOP at least a year ago.

ryzen-3700u-bpytop

PadowYT2 commented 1 year ago

Same thing for me, running lscpu | grep -i "model name" shows AMD Ryzen 5 3600 6-Core Processor which is right https://cdn.padow.ru/qeUQ

Edit: After touching "Check temp" (I can't make it true), CPU name is visible, but in width it is trash now. And if CTRL+C & bashtop, it is back to Ryzen 5 3