AMDEPYC / AMDEPYC/kubernetes-power-manager

EPYC cpus not running on low frequencies when at least one core inside the CCX is on a higher frequency

Aperta
#81 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Go
Stelle
5
Fork
4
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Environment:
CPU:
Family: 0x19
Model: 0x11
Model name: AMD EPYC 9654 96-Core Processor
Stepping: 1
Microcode: 0xa101148

driver: amd-pstate passive
Highest performance: 3.74 GHz
Nominal performance: 2.4 GHz
Lowest non-linear frequency: 1.9 GHz
Lowest frequency: 400 MHz

Ubuntu 24.04 LTS
kernel 6.8.0.-51-generic

Observed behavior:
Observed minimal CPU frequencies of cores inside CCX (8 cores in case of this cpu) are not HW minimal frequencies for the CPU/core, but they are dependent on highest frequency of a core inside this CCX.
Observed frequencies (MHz):
```
| Highest frequency of a core | Observed lowest minimal frequency of all cores inside CCX |
-------------------------------------------------------------------------------------------
| 1000 | 570 |
| 1500 | 740 |
| 2000 | 798 |
| 2400 | 948 |
| 3000 | 1188 |
| 3709 | 1477 |
```

How to reproduce and observe this behavior:
- set all cpus inside a CCX (let's take logical cpus 8-15 and their siblings 200-207) to powersave governor with minimal frequency 400 MHz
```
# cpupower -c 8-15,200-207 frequency-set -g powersave
```
- check busy frequencies of cpus (Bzy_MHz)
```
# turbostat -c 8-15,200-207
```
![{18BF2CE4-16B2-4734-94C1-F4105381B714}](https://github.com/user-attachments/assets/4feb2f63-b745-43ea-ac3f-6efd2eb84b1a)

they should be all on (or close to) 400 MHz (and they are).
- set frequency of one of the cpu inside the CCX to a higher frequency, say 3500 MHz. For example by keeping powersave governor and increasing minimum frequency to the target frequency:
```
# cpupower -c 8 frequency-set --min 3500000
```
- check again busy frequencies by turbostrat
```
# turbostat -c 8-15,200-207
```
![{371103DF-257B-419F-8544-E1D6F4DE5E5C}](https://github.com/user-attachments/assets/fc00c72f-e0d6-4fb6-a601-592a7c1bb65b)

Expected behavior after this:
- Bzy_MHz for cpus 8,200 should be around 3500 MHz (and it is - ok)
- Bzy_MHz for cpus 9-15,201-207 should stay at 400 MHz (and it is not - in this case it is around 1387 MHz)

Note that this behavior is not specific for a cpufreq governor, it is also obvervable when using userspace or other governors.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.