Skip to content

Commit 6eaa060

Browse files
committed
Fixes for regular M series chips
1 parent f294f9a commit 6eaa060

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

main.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ func StderrToLogfile(logfile *os.File) {
250250
func main() {
251251

252252
// get version from git
253-
version := "v0.1.1"
253+
version := "v0.1.2"
254254
if len(os.Args) > 1 && os.Args[1] == "--version" {
255255
fmt.Println("goasitop version:", version)
256256
os.Exit(0)
@@ -695,14 +695,20 @@ func parseCPUMetrics(powermetricsOutput string, cpuMetrics CPUMetrics) CPUMetric
695695
cpuMetrics.EClusterFreqMHz = max(cpuMetrics.E0ClusterFreqMHz, cpuMetrics.E1ClusterFreqMHz)
696696
}
697697

698-
if cpuMetrics.P3ClusterActive != 0 {
698+
if cpuMetrics.PClusterActive != 0 {
699699
// M1 Ultra
700-
cpuMetrics.PClusterActive = (cpuMetrics.P0ClusterActive + cpuMetrics.P1ClusterActive + cpuMetrics.P2ClusterActive + cpuMetrics.P3ClusterActive) / 4
701-
freqs := []int{cpuMetrics.P0ClusterFreqMHz, cpuMetrics.P1ClusterFreqMHz, cpuMetrics.P2ClusterFreqMHz, cpuMetrics.P3ClusterFreqMHz}
702-
cpuMetrics.PClusterFreqMHz = maxInt(freqs)
703-
} else {
704-
cpuMetrics.PClusterActive = (cpuMetrics.P0ClusterActive + cpuMetrics.P1ClusterActive) / 2
705-
cpuMetrics.PClusterFreqMHz = max(cpuMetrics.P0ClusterFreqMHz, cpuMetrics.P1ClusterFreqMHz)
700+
if cpuMetrics.P2ClusterActive != 0 {
701+
cpuMetrics.PClusterActive = (cpuMetrics.P0ClusterActive + cpuMetrics.P1ClusterActive + cpuMetrics.P2ClusterActive + cpuMetrics.P3ClusterActive) / 4
702+
freqs := []int{cpuMetrics.P0ClusterFreqMHz, cpuMetrics.P1ClusterFreqMHz, cpuMetrics.P2ClusterFreqMHz, cpuMetrics.P3ClusterFreqMHz}
703+
cpuMetrics.PClusterFreqMHz = maxInt(freqs)
704+
} else {
705+
if cpuMetrics.P0ClusterActive != 0 {
706+
cpuMetrics.PClusterActive = (cpuMetrics.P0ClusterActive + cpuMetrics.P1ClusterActive) / 2
707+
cpuMetrics.PClusterFreqMHz = max(cpuMetrics.P0ClusterFreqMHz, cpuMetrics.P1ClusterFreqMHz)
708+
} else {
709+
cpuMetrics.PClusterActive = cpuMetrics.PClusterActive + cpuMetrics.P0ClusterActive
710+
}
711+
}
706712
}
707713

708714
// Calculate average active residency and frequency for E and P clusters

0 commit comments

Comments
 (0)