P-Core and E-Core always 100% usage
Opened this issue ยท 14 comments
Same system, same problem
It's reporting 100% CPU... at 0.5 watts
same here
confirmed that parse_cpu_metrics() doesn't recognize the cores properly on an M3 Max.
For example on an M3 Max with 14 cores (4 Efficiency, 10 Performance) the E-Cluster_active is set to 100 but the the actual cores are named E-Cluster0_active, E-Cluster1_active to P-Cluster13_active
Some sample code that is able to read all cores is:
for cluster in e_core:
cpu_metric_dict["E-Cluster_active"] += cpu_metric_dict["E-Cluster" +
str(cluster) + "_active"]
cpu_metric_dict["E-Cluster_freq_Mhz"] = max(
cpu_metric_dict["E-Cluster_freq_Mhz"], cpu_metric_dict["E-Cluster" + str(cluster) + "_freq_Mhz"])
cpu_metric_dict["E-Cluster_active"] = int(
cpu_metric_dict["E-Cluster_active"]/len(e_core))
for cluster in p_core:
cluster_name = "P-Cluster" + str(cluster) + "_active"
cluster_active = cpu_metric_dict[cluster_name]
cluster_freq = cpu_metric_dict["P-Cluster" +
str(cluster) + "_freq_Mhz"]
if cluster_freq != 0:
cpu_metric_dict["P-Cluster_active"] += cluster_active
cpu_metric_dict["P-Cluster_freq_Mhz"] = max(
cpu_metric_dict["P-Cluster_freq_Mhz"], cluster_freq)
cpu_metric_dict["P-Cluster_active"] = int(
cpu_metric_dict["P-Cluster_active"]/len(p_core))But even the code above doesn't look the same as the OSX Native activity monitor. The last P-Cores show high usage in asitop and powermetrics on the second performance cluster (P-1 Cluster, CPU 9-13) because these cores can be online or offline and when they are offline they may report high usage which skews the results. So we have to filter out cores that are not online but I am not sure how.
Looks like 5314e67 may be the necessary fix
Yes, or simply use gavi's fork fixed the issue
pip install git+https://github.com/gavi/asitop.git
same here
same here
pip install git+https://github.com/gavi/asitop.git works for me
Looks like 5314e67 may be the necessary fix
Yes, or simply use gavi's fork fixed the issue
pip install git+https://github.com/gavi/asitop.git
Thank you. This solved the issue on my MacBook Pro M3 Max
Same here:
brew info asitop
==> asitop: stable 0.0.24 (bottled)
Perf monitoring CLI tool for Apple Silicon
https://tlkh.github.io/asitop/
Installed
/opt/homebrew/Cellar/asitop/0.0.24 (112 files, 1.7MB) *
Poured from bottle using the formulae.brew.sh API on 2024-07-25 at 12:11:50
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/a/asitop.rb
License: MIT
==> Dependencies
Required: python@3.12 โ
macOS 14.5
Model Name: MacBook Pro
Model Identifier: Mac15,9
Chip: Apple M3 Max
Total Number of Cores: 16 (12 performance and 4 efficiency)
Memory: 48 GB
System Firmware Version: 10151.121.1
OS Loader Version: 10151.121.1
Hi. This repository looks inactive, I have developed an alternative solution that bonus works without sudo.
If anyone is interested: https://github.com/vladkens/macmon
same here
pip install git+https://github.com/gavi/asitop.git works for me
I just tried this one and unfortunately it also exhibits the same 100% issue on my 16" M3 Max running 15.4.1.
Same issue on the M3 Max with 14c / 30GPU. E and P Cores constantly reported at 100% with around 1 Watts.
Same issus on the M4 Max with 4E/12P/40GPU
pip install git+https://github.com/gavi/asitop.git works for me
Same issue on macOS 15.7.2
