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
- 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
```

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
```

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.