Closed tycho closed 8 months ago
Hi.
Yeap, looks like each new SoC from Apple has different sensor keys.
You can monitor all keys in the Stats by enabling the Show unknown sensors
option in the settings.
If you are sure the keys you have in the script is the correct I can add them to the Stats.
The ones I have in the script are currently just guesses. I am somewhat confident the P-core/E-core temperature ones are right, but I'll keep tinkering with this to build some more confidence. I'm pretty sure the GPU-related ones are wrong, I'm still working on hunting those down.
Thanks. I will add CPU cores to the Stats. Please let me know if you will find more sensors. Unfortunately there is a way to get sensor keys: guessing(
PS: you have duplicated Tf0A
and Tf4A
keys
PS: you have duplicated
Tf0A
andTf4A
keys
Indeed I did, whoops. The E-core sensors are hard to figure out because of how challenging it is to get a heavy enough user workload to stay running on those (even with "background" QoS class, low niceness, etc). Maybe I'll try triggering a Spotlight rebuild or something, that should put some load on them. And I know that is pretty sticky to E-cores.
Okay, I updated the script and ran some more workloads to try and figure out the E-core/P-core/GPU temperature sensors.
The P-core ones I'm pretty certain are right.
The E-core ones are probably correct, but it's hard to tell. Even under load (Spotlight reindexing and Time Machine backup), they only get as high as about 54C and idle at 48C. I didn't see any other sensors that were obviously correct though.
As for the GPU ones, they're very definitely correlated (rising and dropping based on the GPU workload), but there sure are a lot of them. I mean, yes, there are 40 GPU cores in this thing, but 14 sensors for that seems like too many. EDIT: Pared the GPU sensors down to just eight -- six of them were duplicating values from other keys.
As for power sensors, I think I might have a lead on the GPU power value.
Comparing with output of powermetrics
, watching it in lockstep with watch-smc.py
, I suspect that GPU total power is a sum of the PCxx sensors:
PC00: 0.000 L +0.000 B +0.000
PC01: 0.000 L +0.000 B +0.000
PC02: 0.000 L +0.000 B -0.002
PC03: 0.000 L +0.000 B +0.000
PC10: 6.200 L +0.507 B +6.200
PC11: 0.000 L +0.000 B -0.001
PC12: 6.373 L +0.592 B +6.373
PC13: 0.000 L +0.000 B +0.000
PC20: 5.930 L +0.229 B +5.930
PC21: 0.000 L -0.000 B +0.000
PC22: 5.870 L +0.342 B +5.870
PC23: 0.000 L +0.000 B +0.000
PC30: 0.000 L +0.000 B +0.000
PC31: 0.000 L +0.000 B +0.000
PC32: 5.254 L -0.567 B +5.161
PC33: 0.000 L +0.000 B +0.000
PC40: 7.068 L -0.099 B +7.068
PC41: 0.000 L +0.000 B +0.000
PC42: 0.735 L -0.167 B +0.607
PC43: 0.065 L -0.002 B +0.064
PCMC: 0.000 L +0.000 B +0.000
PDTR: 83.598 L +0.028 B +65.862
PHPC: 58.807 L -16.128 B +54.133
PHPS: 52.186 L -0.050 B +49.534
PMVC: 17.747 L -0.473 B +12.691
PPSC: 8.786 L -0.479 B +7.822
PR2b: 1.708 L -2.956 B +1.673
PSTR: 89.598 L +1.378 B +72.291
PSVR: 58.627 L +1.125 B +56.845
PZC0: 52.098 L -0.165 B +49.449
PZC1: 52.723 L +0.982 B +50.117
PZD1: 8.261 L +0.186 B +7.812
The above is when powermetrics
claimed GPU Power: 30684 mW
. The sum of the PCxx sensors is 37.495
. A bit higher than what powermetrics
is reporting, but if you subtract out the sum of PC4x, you get a total of 29.627
, which is really close. Based on issues I've seen with other projects, such as asitop, I think powermetrics is not being well-maintained by Apple. It's possible that it summed up PC0x through PC3x and incorrectly excluded PC4x from its total.
@tycho it's a pretty nice script) Thanks for sharing)
Will try to find an m2 platform to get sensors for that soc. Because m2 has a pretty big gap in the sensors.
I want to add this functionality to the app now😅
I've got an M2 MacBook Air I could tinker with getting some more sensor info from. I'll have to see what I can find.
On my M3 (not Pro or Max) my guesses using smc (and comparison with watch-smc and values.swift) are:
P-Cores: There are no Tf keys - so completely different. I think the 4 cores are: Tp01 Tp05 Tp0D Tp0H which repeat very closely as Tp0L Tp0P Tp0X Tp0b This is more like your base Apple silicon keys.
E-Cores: I am happy with Te05 and Te0L (as in your list). I think Te0P is wrong and Te0S does not exist. I don't know where the other 2 E-cores might be!
Interesting! Could you share the output of "/Applications/Stats.app/Contents/Resources/smc list"? It would be interesting to know which keys the M3 and M3 Max have in common -- any added keys in the M3 Max might be the additional cores and could give hints as to the naming scheme.
Here you are: [Uploading smc20231129-1527.txt…]()
Here you are: Uploading smc20231129-1527.txt…
Try again? It didn't finish uploading before you hit submit. :)
Try again: smc20231129-1527.txt
Try again: smc20231129-1527.txt
Wow, that's a lot more differences than I was expecting. https://gist.github.com/tycho/215aaf4b9eedc065f132cf6d98153d00
Very different. Maybe the M3 is just a souped up M1 design and its sensors are more like an M1. This is my only AS Mac so can't compare.
My interest is that, for my own amusement, I use Cacti (SNMP network monitoring) to capture a few Mac sensors and have always based that on running smcutil/smc under an SNMP script.
I updated the watch-smc.py
script, embedding the lists of M3 and M3 Max SMC keys. This way we can easily identify which ones are in common between the two.
For example, here's what happens with the Power-related SMC keys during a GPU-based (MetalRT on) Blender render on my M3 Max:
[PC40] M3-Max : 7.625 L -0.033 B +7.625 GPU 16
[PHPC] M3-Any : 58.209 L -11.954 B +50.133 CPU power total? 1
[PHPS] M3-Any : 50.055 L +3.097 B +48.675 CPU power total? 2
[PMVC] M3-Max : 15.066 L +1.229 B +13.043
[PPBR] M3-Any : 76.915 L +2.905 B +69.903
[PPSC] M3-Max : 8.872 L +0.749 B +8.271
[PSTR] M3-Any : 75.708 L +2.332 B +65.885
[PSVR] M3-Max : 53.357 L +2.042 B +52.024
[PZC0] M3-Any : 50.051 L +3.146 B +48.671
[PZC1] M3-Any : 49.765 L +2.555 B +48.402
[PZD1] M3-Any : 8.413 L +0.971 B +8.252
[Pb0f] M3-Any : 76.989 L +3.093 B +69.952 Battery discharge rate
During this run, powermetrics --samplers gpu_power
claims GPU Power: 29607 mW
. Nothing above seems to directly correlate. Hrm.
I've added some notes on here: https://gist.github.com/tycho/73fb64e7ba0b259923a92a4bacea9e78
To summarize, my current line of thought on the breakdown for the PCxx values is:
First 6 P-cores PC02
Second 6 P-cores PC42
Memory controller? PC32
Generic GPU cores PC10, PC12, PC20, PC22
Compute GPU cores? PC40
Neural Engine PC00
I'm not completely sure what PC40 is, but a Blender render (with or without MetalRT) will light that one up. PC32 is a bit confusing too, because it ticks up at unpredictable times. I think it might be something to do with memory bus load.
Unfortunately all the PCxx keys are not present on the M3 base model, only on M3 Max. It's entirely possible that M3, M3 Pro, and M3 Max all have different SMC keys.
This looks promising:
https://github.com/freedomtan/test-ioreport
If you use that, one of the bits in the report it spews out is this (truncated because there's a lot):
...
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL59: 1226299 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL5a: 1165671 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL5b: 510189 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL5c: 236246 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL5d: 204126 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL5e: 284341 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL5f: 158006 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL510: 472478 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL511: 397702 (mJ)
2023-11-29 04:04:33.131 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL512: 131972 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): PCPU1DTL513: 14117558 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): GPU0: 146981507 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): GPU CS0: 25159023 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): GPU SRAM0: 745944 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): GPU CS SRAM0: 42309 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): ANE0: 1838325 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): ISP0: 1029132 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): AVE0: 1386731 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): MSR0: 1506437 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): DCS0: 88926760 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): DRAM0: 101960769 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): AMCC0: 175035374 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): DISP0: 29543093 (mJ)
2023-11-29 04:04:33.132 test_ioreport[73270:3609034] AppleT6031PMGR <id 0x1000003f9>: Energy Model: (null): DISPEXT0: 8106668 (mJ)
It reports energy in milli-Joule counters. So you can take two snapshots, subtract to get deltas between the two snapshots, divide by time between reading samples, and ta-daa, you have watts for each metric.
That seems to be the interface that the powermetrics
command line tool talks to.
@exelban Think you could try out integrating an IOReport method for gathering power metrics? I recommend trying the project I mentioned with the command line ./test_ioreport "Energy Model"
, as that has all the mJ metrics.
Hi, I have added CPU and GPU sensors in today release. If you will have more keys to add just ping me.
@exelban The sensor list is still a bit wonky.
oh, I forgot to detect m3 platform( will deploy a quick fix in a few minutes
Could you please check this build:
That build looks pretty good to me.
thx, I have updated the latest release with this fix.
the cpu sensor temps are not ok. they show like 10 degree less than powermetrics / istat / tg pro . on my 16" m3 max 14 core. also it displays 12 p-cores temp values and it only has 10
PDBR i suspect it's Display. i see it goes from 1W to 11W based on backlight.
PDBR i suspect it's Display. i see it goes from 1W to 11W based on backlight.
Agreed, already had that one here: https://gist.github.com/tycho/73fb64e7ba0b259923a92a4bacea9e78#file-watch-smc-py-L620 DBR probably stands for "Display BRightness"
the cpu sensor temps are not ok. they show like 10 degree less than powermetrics / istat / tg pro . on my 16" m3 max 14 core. also it displays 12 p-cores temp values and it only has 10
Can you post your "smc list" output as well? That might help narrow down the core temp sensor possibilities.
@djcristi Updated with your 14-core M3 Max keys:
https://gist.github.com/tycho/73fb64e7ba0b259923a92a4bacea9e78
I added a quick way to see the difference between the 14 and 16 core versions:
Keys in 16-core M3 Max but not in 14-core M3 Max: ['SFFC', 'TDTC', 'TVS3', 'Tf2C', 'ceF3', 'ceP3', 'ceU3', 'cm01', 'cmD5', 'cmF3', 'csF3', 'csP3', 'csU3', 'f009', 'f00a', 'frMX', 'fts3', 'fuP3', 'fuU3', 'iaD5', 'iaFs', 'iaP3', 'isF3', 'isP3', 'isU3', 'maF3', 'maP3', 'maU3', 'mlT3', 'mlTL', 'mlTl', 'mm00', 'mmV5', 'mxS3', 'mxSd', 'oF30', 'oF31', 'oF32', 'oF33', 'oF34', 'oF35', 'oF36', 'oF37', 'oF38', 'oF39', 'oF40', 'oF41', 'oF42', 'oTO3', 'ocew', 'ofci', 'ofcj', 'ofck', 'ofcl', 'ofli', 'oflj', 'oflk', 'ofll', 'ofp3', 'oft2', 'oft4', 'oft6', 'oftA', 'oftc', 'ofte', 'oisw', 'oke8', 'oki4', 'oki8', 'okiw', 'okp4', 'okp8', 'okpw', 'otCZ', 'otCz', 'otMx', 'otMy', 'ov04', 'ov05', 'ov24', 'ov40', 'ov41', 'ov42', 'ov43', 'ov44', 'ovCY', 'ovCj', 'ovCk', 'ovCl', 'ovEa', 'ovEb', 'ovEc', 'ovEg', 'ovNj', 'ovNk', 'ovNl', 'si0J', 'si0T', 'si0e', 'si0f', 'si0g', 'sit5', 'uuF3', 'uuO3', 'uuP3', 'uuU3', 'uuV5', 'uuhp', 'w002']
Some of the keys not in the 14-core are present in both M3 base spec and M3 Max 16-core, which is strange.
Here's the list of ones present only in the 16-core version:
['SFFC', 'TVS3', 'Tf2C', 'ceF3', 'ceP3', 'ceU3', 'cm01', 'cmD5', 'cmF3', 'csF3', 'csP3', 'csU3', 'f009', 'f00a', 'fts3', 'fuP3', 'fuU3', 'iaD5', 'iaFs', 'iaP3', 'isF3', 'isP3', 'isU3', 'maF3', 'maP3', 'maU3', 'mlT3', 'mlTL', 'mlTl', 'mm00', 'mmV5', 'mxS3', 'mxSd', 'oF30', 'oF31', 'oF32', 'oF33', 'oF34', 'oF35', 'oF36', 'oF37', 'oF38', 'oF39', 'oF40', 'oF41', 'oF42', 'oTO3', 'ocew', 'ofci', 'ofcj', 'ofck', 'ofcl', 'ofli', 'oflj', 'oflk', 'ofll', 'ofp3', 'oft4', 'oft6', 'oftA', 'ofte', 'oisw', 'oke8', 'oki4', 'oki8', 'okiw', 'okp4', 'okp8', 'okpw', 'otCZ', 'otCz', 'otMx', 'otMy', 'ov04', 'ov05', 'ov40', 'ov41', 'ov42', 'ov43', 'ov44', 'ovCY', 'ovCj', 'ovCk', 'ovCl', 'ovEa', 'ovEb', 'ovEc', 'ovEg', 'ovNj', 'ovNk', 'ovNl', 'si0T', 'sit5', 'uuF3', 'uuO3', 'uuP3', 'uuU3', 'uuV5', 'uuhp', 'w002']
And these are 14-core only keys (not in M3 base or M3 Max 16-core models):
['ACDE', 'TDCR', 'TDEC', 'fRMX', 'ft15', 'ft16', 'meFs', 'oF18', 'oF19', 'oF20', 'oF21', 'oF22', 'oftf', 'oftg', 'ovUa', 'ovUb', 'ovUc', 'ovUg', 'ovs1', 'ovs2', 'ovs3', 'si05', 'si06', 'si07', 'si08', 'uuPS', 'uupw']
did you notice the cpu power consumption diff? so in my 13" pro m1 , the powermetrics power is the same with the one reported by the one from smc.
In this 16 m3 max 14c (Sonoma 14.1.2 & 14.2), under full p-cores load (https://cpux.net/cpu-stress-test-online , 10 thread at 100%)
auto/high-power mode: smc reports ~60W (62 phpc/ 58 phps, 10 display pdbr, 86W total DC IN), AC power meter 92W and powermetrics only 48W cpu/pkg
on low power mode: smc reports 30-32W (32 phpc/ 30 phps, 10 display pdbr, 53W total DC IN), AC power meter 57W and powermetrics only 21W cpu/pkg.
Considering total power consumption, powermetrics is wrong.
l.e. same for GPU
@tycho can you test on your 16 core to see how this looks?
Hi @exelban I would like ask again for update sensor keys for M2 Pro / Max platform to have Efficiency and Performance cores instead of 8 general. SMC output: 14inch M2 Pro 12c19g: smc_m2pro12c19g.txt
@joujek no problem. Just give keys that need to be used instead of actual.
UPDATE:
HI @exelban below the keys found by decompiling one of alternative sw: I have compared to my smc output and values from "Show unknown sensors" looks legit :)
In addition I'm attaching dump for M3/Pro/Max Platform: Mac15,3, Mac15,6, Mac15,8, Mac15,10, Mac15,7, Mac15,9, Mac15,11
++ GPU:
Hope it helps
@joujek I have an M3 (15.3). I agree (from observation of counters under loads) with your "choice" for GPU and P-core sensors.
Your E-cores, I am not so sure about. When P-cores are loaded and the E-cores not, your values for the E-cores are roughly the same as the P-cores - I would expect them to be lower.
My best guess is Te05 and Te0L for two E-cores, but I am stuck for the other two! All the other Te values are higher than those.
Looking at other products: TGPro shows e-cores lower than p-cores and agree with using Te05 and Te0L. iStat shows e-cores always about the same as p-cores - suggesting it uses Tp0B, etc for E-cores.
HI @gilby101 - The dump I shared is from latest iStat ;)
Personally I have M2 Pro 12/19 and compared iStats vs Macs Fan Control vs Stats (unknown sensors list). I believe any changes for M2Pro/Max will be better than generic/present 8 cores we have now in Stats.
Hi @joujek My feeling is that TG Pro is ahead of iStats for the M3 (not pro/max). I will leave you do any serious reverse engineering.
did you notice the cpu power consumption diff? so in my 13" pro m1 , the powermetrics power is the same with the one reported by the one from smc. ----- blabla Considering total power consumption, powermetrics is wrong.
@tycho can you test on your 16 core to see how this looks?
sorry , i don't want to add posts with power consumption results here since it's different than this topic. i moved them here : https://forums.macrumors.com/threads/m3-max-14c-powermetrics-wattage-wrong-14-vs-16.2414321/
UPDATE:
HI @exelban below the keys found by decompiling one of alternative sw: I have compared to my smc output and values from "Show unknown sensors" looks legit :)
Px - x performance core / Ex - x efficiency core
M2 8C: Tp01 P1 Tp05 P2 Tp09 P3 Tp0D P4
Tp0b E1 Tp0f E2 Tp0j E3 Tp0n E4 //This sensor is different than Pro/Max platform
M2 PRO 10C
Tp01 P1 Tp05 P2 Tp09 P3 Tp0D P4 Tp0X P5 Tp0b P6
Tp0f E1 Tp1l E2 Tp1h E3 Tp0j E4
M2 PRO 14C
Tp01 P1 Tp05 P2 Tp09 P3 Tp0D P4 Tp0X P5 Tp0b P6 Tp0f P7 Tp0j P8
Tp1h E1 Tp1t E2 Tp1p E3 Tp1l E4
case .m2, .m2Pro, .m2Max, .m2Ultra: self.list = ["Tp1h", "Tp1t", "Tp1p", "Tp1l", "Tp01", "Tp05", "Tp09", "Tp0D","Tp0X","Tp0b","Tp0f","Tp0j"]
//M2 Sensor(key: "Tp1h", name: "CPU efficiency core 1", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp1t", name: "CPU efficiency core 2", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp1p", name: "CPU efficiency core 3", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp1l", name: "CPU efficiency core 4", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp01", name: "CPU performance core 1", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp05", name: "CPU performance core 2", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp09", name: "CPU performance core 3", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp0D", name: "CPU performance core 4", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp0X", name: "CPU performance core 5", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp0b", name: "CPU performance core 6", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp0f", name: "CPU performance core 7", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true), Sensor(key: "Tp0j", name: "CPU performance core 8", group: .CPU, type: .temperature, platforms: [.m2, .m2Max, .m2Pro, .m2Ultra], average: true),
Thank you in advance
@exelban any feedback on this ?
@exelban do you have on plan to fix temp sensors for m3 max, it does not show correct temp , i guess you've messed the sensor names.
also the PDBR (mini-led backlight power) i think can be put as known sensor, it's common along Macbook xdr display (14/16 mbp)
@djcristi all sensors from that issue have already been included in the build for a few weeks. If you have more sensors just share the list and I will add it.
like i've wrote in my previous thread, PDBR is still listed as unknown istead of 'Display Backlight Power' or something.
and the temp sensor names are wrong , for M3 max 14c at least,
stats (wrong <40)
tg pro (real ones):
istat menus (wrong on 9,10):
Just updated to version Version 2.9.20:
Seems like the values from commit https://github.com/exelban/stats/commit/df1a0a8bacb9a9a6c23afa3c5faaabae2fc15890 are not working for M3 pro 11C CPU.
Describe the bug I am sure this will be a fun one to figure out, but it would be nice if Stats could recognize and handle the SMC sensors for the Apple M3 (and Pro/Max) chips. The keys are definitely different from M1 and M2. Here's what Stats currently sees (during a CPU-intensive build, so the sensors look a bit alarming):
It's pretty clear it's not reading the right keys, particularly for CPU P-core/E-core temperature sensors and the GPU.
I've written a little script to try and identify the right sensors, but there is a lot of data making it difficult to correlate. Some of the SMC values are likely not instantaneous values but rather aggregates over certain time windows (e.g. moving averages or similar).
Here's the work-in-progress script. I've added some comments to it to explain the design. I also have a few guesses in there for what some of the keys correlate to.
https://gist.github.com/tycho/73fb64e7ba0b259923a92a4bacea9e78
If you have any tips on identifying the right sensors for temperature, power, etc, I'd appreciate suggestions.
Details: