Contribute
Register

AppleIntelCPUPowerManagementInfo.kext (MSRDumper successor)

Status
Not open for further replies.
Pike, I've changed cpu setting in bios to:
Code:
1 Core Ratio Limit 40
2 Core Ratio Limit 40
3 Core Ratio Limit 38
4 Core Ratio Limit 35

NOTE: first test (march, 29) was with 1 Core Ratio Limit 41 (and the remaining cores the same as above).
generated ssdt with

Code:
~/ssdtPRGen.sh 4000 40

Code:
sdtPRGen.sh v5.8 Copyright (c) 2013 by Pike R. Alpha
----------------------------------------------------------------
Generating SSDT_PR.dsl for a Macmini6,2 [Mac-F65AE981FFA204ED]
Ivy Bridge Core i7-3770T processor [0x0701] setup
With a maximum TDP of 45 Watt, as specified by Intel
Override value: Max Turbo Frequency, now using: 4000 MHz!
Override value: Max TDP, now using: 40 Watt!
Number logical CPU's: 8 (Core Frequency: 2500 MHz)
Number of Turbo States: 15 (2600-4000 MHz)
Number of P-States: 25 (1600-4000 MHz)
Injected C-States for CPU0 (C1,C3,C6)
Injected C-States for CPU1 (C1,C2,C3)
Warning: Model identifier [Macmini6,2] is missing from: /S*/L*/CoreServices/PlatformSupport.plist

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20130117-64 [Jan 19 2013]
Copyright (c) 2000 - 2013 Intel Corporation

ASL Input:     /Users/gio/Desktop/SSDT_PR.dsl - 261 lines, 8397 bytes, 56 keywords
AML Output:    /Users/gio/Desktop/SSDT_PR.aml - 1601 bytes, 27 named objects, 29 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

Do you want to copy /Users/gio/Desktop/SSDT_PR.aml to /Extra/SSDT.aml? (y/n)?y
Password:
localhost:~ gio$

Code:
Apr  2 15:56:16 localhost kernel[0]: MSRDumper CoreMulti(17) 
Apr  2 15:56:16 localhost kernel[0]: MSRDumper PStatesReached: 16 17 21 25 29 30 31 32 33 34 35 37 38 40

I attach the AICPUPMI results.
Some notes:
a- Eist is still enabled: if I disable Eist, turbo boost mode will disappear, so, to check turbo p-states I have to keep Eist enabled.
b- As you can see in my attached AICPUPMI results, my previous test is still visible while running ACPUPMI (march, 29) and I found 41 as multiplier top value (remember: in march 29 I had 41 as top value of multiplier in core #1)
c- running AICPUPMI a few minutes later (15:49) than the first time (15:44), I obtained the same p-states of MSRDumper
d- running AICPUPMI after reboot (16:18) gave me
Code:
Apr  2 16:18:23 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 38 40 ]
Don't you find strange I can see the old results? Anyway the real question is: maybe MSRDumper has -in some way- influenced AICPUPMI?

EDIT: The following tests will answer to my latest doubts!
 

Attachments

  • AICPUPMI results.zip
    1.3 KB · Views: 166
1- Disabled EIST , generate ssdt with stock cpu values (3700 MHz, 45W), reeboted, run geekbench and finally run AICPUPMI at 16:31

Code:
Apr  2 16:31:59 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 16:32:06 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 23 25 ]

2- Enabled EIST, set cpu turbo at default values (37,37,36,35), ssdt with stock cpu values, rebooted, run geekbench and finally run AICPUPMI at 16:37

Code:
Apr  2 16:37:46 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 16:37:48 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 37 ]
Apr  2 16:37:53 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 37 ]
Apr  2 16:37:55 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 37 ]
Apr  2 16:37:56 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 34 35 37 ]
Apr  2 16:37:56 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 34 35 36 37 ]
Apr  2 16:38:01 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 32 34 35 36 37 ]
Apr  2 16:38:01 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 32 34 35 36 37 ]
Apr  2 16:38:35 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 31 32 34 35 36 37 ]
Apr  2 16:38:40 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 31 32 34 35 36 37 ]
Apr  2 16:38:46 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 31 32 33 34 35 36 37 ]

No MSRDumper involved, this time! :)

3- Rebooted and with same settings as 2 but NO geekbench at 16:46

Code:
Apr  2 16:46:50 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 16:46:52 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 37 ]
Apr  2 16:46:53 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 37 ]
Apr  2 16:46:55 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 37 ]
Apr  2 16:46:59 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 35 37 ]
Apr  2 16:47:00 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 34 35 37 ]
 
now the ultimate test:
test #1

- EIST enabled with cpu cores @ 41,40,38,35 (max values)
- SSDT generated with
Code:
~/ssdtPRGen.sh 4100 40
and edited as you stated in post #15

Code:
Scope (\_PR.CPU0)
    {
        Name (APLF, 0x08)
        Name (APSN, 0x11)
        Name (APSS, Zero)
        Name (BUF0, Package (0x23)

- Rebooted and NO geekbench nor MSRDumper

Code:
Apr  2 17:06:49 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 17:06:51 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 ]
Apr  2 17:06:56 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 41 ]
Apr  2 17:06:58 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 38 41 ]
Apr  2 17:06:59 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 33 35 38 41 ]
Apr  2 17:07:04 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 33 35 38 40 41 ]


test #2

- EIST enabled with cpu cores @ 41,40,38,35 (max values)
- SSDT generated with
Code:
~/ssdtPRGen.sh 4100 40
and NO EDIT

- Rebooted and NO geekbench nor MSRDumper

Code:
Apr  2 17:12:31 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 17:12:33 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 ]
Apr  2 17:12:34 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 40 ]
Apr  2 17:12:37 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 40 ]
Apr  2 17:12:40 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 38 40 ]

EDIT: Running Geekbench with MSRDumper loaded with this last config (no SSDT BUF0 edit) gave me this results
Code:
Apr  2 17:20:09 localhost kernel[0]: MSRDumper CoreMulti(17) 
Apr  2 17:20:09 localhost kernel[0]: MSRDumper PStatesReached: 16 17 30 31 32 33 34 35 37 38 40
AICPUPMI gave this
Code:
Apr  2 17:12:31 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 17:12:33 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 ]
Apr  2 17:12:34 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 35 40 ]
Apr  2 17:12:37 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 40 ]
Apr  2 17:12:40 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 38 40 ]
Apr  2 17:12:53 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 34 35 38 40 ]
Apr  2 17:13:05 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 33 34 35 38 40 ]
Apr  2 17:13:08 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 32 33 34 35 38 40 ]
Apr  2 17:14:02 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 32 33 34 35 38 40 ]
Apr  2 17:15:39 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 32 33 34 35 38 40 41 ]
Apr  2 17:19:16 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 31 32 33 34 35 38 40 41 ]
Apr  2 17:19:19 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 31 32 33 34 35 38 40 41 ]

After that, same config as above
rebooted, run Geekbench, NO MSRDumper, AICPUPMI gave this
Code:
Apr  2 17:24:20 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 ]
Apr  2 17:24:22 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 25 40 ]
Apr  2 17:24:23 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 40 ]
Apr  2 17:24:29 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 40 ]
Apr  2 17:24:34 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 25 35 38 40 ]
Apr  2 17:24:42 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 35 38 40 ]
Apr  2 17:24:53 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 33 35 38 40 ]
Apr  2 17:24:57 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 33 34 35 38 40 ]
Apr  2 17:24:59 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 32 33 34 35 38 40 ]
Apr  2 17:25:04 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 32 33 34 35 38 40 ]
Apr  2 17:25:04 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 31 32 33 34 35 38 40 ]
Apr  2 17:25:13 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 31 32 33 34 35 36 38 40 ]
Apr  2 17:25:42 localhost kernel[0]: AICPUPMI: CPU P-States [ 16 17 21 25 30 31 32 33 34 35 36 37 38 40 ]

Conclusions:
- With MY CPU Intel i7 3770T at max core ratio limit, AICPUPMI can reach top multiplier with SSDT editing you suggested in post #15.
- Lowering core ratio limit to 40 (or ANY other frequency but 41) doesn't require SSDT editing to reach top multiplier.
- MSRDumper "pushes" AICPUPMI to x41 even without SSDT editing
- All of this testing are with EIST enabled, because my bios doesn't allow turbo without that.
- Your AICPUPMI DOES work indeed!
Feel free to suggest any advice or further test.
 
@giacomoleopardo,

Wow. Thank you for all test reports. Great job!
 
@ok_tod,

What model identifier are you using?

@all,

Do you see something like this in /var/log/system.log

Low Frequency Mode : ...
Clock Speed : ...
Max Turbo Frequency: ...
Max Frequency : ...

The first one tell us the lowest possible clock frequency (1600 MHz for desktop processors and as low as 800 MHz for mobile processors).
 
@ok_tod,

What model identifier are you using?

@all,

Do you see something like this in /var/log/system.log

Low Frequency Mode : ...
Clock Speed : ...
Max Turbo Frequency: ...
Max Frequency : ...

The first one tell us the lowest possible clock frequency (1600 MHz for desktop processors and as low as 800 MHz for mobile processors).

I see.

Low Frequency Mode : 1600 MHz
Clock Speed : 3400 MHz
Max Turbo Frequency: 3800 Mhz
Max Frequency : ...

Code:
./ssdtPRGen.sh i5-3570K


Code:
sdtPRGen.sh v5.8 Copyright (c) 2013 by Pike R. Alpha
----------------------------------------------------------------
Generating SSDT_PR.dsl for a Macmini6,1 [Mac-031AEE4D24BFF0B1]
Ivy Bridge Core i5-3570K processor [0x0604] setup
With a maximum TDP of 77 Watt, as specified by Intel
Number logical CPU's: 4 (Core Frequency: 3400 MHz)
Number of Turbo States: 4 (3500-3800 MHz)
Number of P-States: 23 (1600-3800 MHz)
Injected C-States for CPU0 (C1,C3,C6)
Injected C-States for CPU1 (C1,C2,C3)

Warning: 'cpu-type' may be set improperly (0x0604 instead of 0x0704)

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20110623-64 [Jun 23 2011]
Copyright (c) 2000 - 2011 Intel Corporation

ASL Input:  /Users/mac/Desktop/SSDT_PR.dsl - 231 lines, 8478 bytes, 36 keywords
AML Output: /Users/mac/Desktop/SSDT_PR.aml - 1348 bytes, 15 named objects, 21 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Thanks for the reply.
 
I see:

Code:
Mar 29 10:23:34 Baldwin kernel[0]: Low Frequency Mode : 1600 MHz
Mar 29 10:23:34 Baldwin kernel[0]: Clock Speed        : 3400 MHz
Mar 29 10:23:34 Baldwin kernel[0]: Max Turbo Frequency: 4500 MHz

Which is exactly what it should report.
 
i7-3770K @ Gigabyte Z77MX-D3H TH
iMac13,2 profile
Turbo Ratios: 2344

Code:
02.05.2013 08:51:57,000 kernel[0]: MSR_CORE_THREAD_COUNT......(0x35)  : 0x40008
02.05.2013 08:51:57,000 kernel[0]: MSR_PLATFORM_INFO..........(0xCE)  : 0x81010F0012300
02.05.2013 08:51:57,000 kernel[0]: MSR_FLEX_RATIO..........(0x194)  : 0xE0000
02.05.2013 08:51:57,000 kernel[0]: MSR_PMG_CST_CONFIG_CONTROL.(0xE2)  : 0x1E000403
02.05.2013 08:51:57,000 kernel[0]: MSR_PMG_IO_CAPTURE_BASE....(0xE4)  : 0x10414
02.05.2013 08:51:57,000 kernel[0]: IA32_MPERF.................(0xE7)  : 0x18E246B4A
02.05.2013 08:51:57,000 kernel[0]: IA32_APERF.................(0xE8)  : 0x1A3370987
02.05.2013 08:51:57,000 kernel[0]: MSR_IA32_PERF_STATUS.......(0x198) : 0x25CA00002300
02.05.2013 08:51:57,000 kernel[0]: MSR_IA32_PERF_CONTROL......(0x199) : 0x2300
02.05.2013 08:51:57,000 kernel[0]: IA32_CLOCK_MODULATION......(0x19A) : 0x0
02.05.2013 08:51:57,000 kernel[0]: IA32_THERM_STATUS..........(0x19C) : 0x88400000
02.05.2013 08:51:57,000 kernel[0]: IA32_MISC_ENABLES..........(0x1A0) : 0x850089
02.05.2013 08:51:57,000 kernel[0]: MSR_MISC_PWR_MGMT..........(0x1AA) : 0x400000
02.05.2013 08:51:57,000 kernel[0]: MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x25262727
02.05.2013 08:51:57,000 kernel[0]: IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x0
02.05.2013 08:51:57,000 kernel[0]: MSR_POWER_CTL..............(0x1FC) : 0x14005F
02.05.2013 08:51:57,000 kernel[0]: MSR_RAPL_POWER_UNIT........(0x606) : 0xA1003
02.05.2013 08:51:57,000 kernel[0]: MSR_PKG_POWER_LIMIT........(0x610) : 0xA58000009F40
02.05.2013 08:51:57,000 kernel[0]: MSR_PKG_ENERGY_STATUS......(0x611) : 0xD2AB8E
02.05.2013 08:51:57,000 kernel[0]: MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x1814149400000960
02.05.2013 08:51:57,000 kernel[0]: MSR_PP0_POWER_LIMIT........(0x638) : 0xA580
02.05.2013 08:51:57,000 kernel[0]: MSR_PP0_ENERGY_STATUS......(0x639) : 0xA357E8
02.05.2013 08:51:57,000 kernel[0]: MSR_PP0_POLICY.............(0x63a) : 0x0
02.05.2013 08:51:57,000 kernel[0]: MSR_PP1_CURRENT_CONFIG.....(0x602) : 0x1814149400000960
02.05.2013 08:51:57,000 kernel[0]: MSR_PP1_POWER_LIMIT........(0x640) : 0xA580
02.05.2013 08:51:57,000 kernel[0]: MSR_PP1_ENERGY_STATUS......(0x641) : 0x0
02.05.2013 08:51:57,000 kernel[0]: MSR_PP1_POLICY.............(0x642) : 0x10
02.05.2013 08:51:57,000 kernel[0]: MSR_CONFIG_TDP_NOMINAL.....(0x648) : 0x23
02.05.2013 08:51:57,000 kernel[0]: MSR_CONFIG_TDP_LEVEL1......(0x649) : 0x1E0000000000000
02.05.2013 08:51:57,000 kernel[0]: MSR_CONFIG_TDP_LEVEL2......(0x64a) : 0x1E0000000000000
02.05.2013 08:51:57,000 kernel[0]: MSR_CONFIG_TDP_CONTROL.....(0x64b) : 0x80000000
02.05.2013 08:51:57,000 kernel[0]: MSR_TURBO_ACTIVATION_RATIO.(0x64c) : 0x0
02.05.2013 08:51:57,000 kernel[0]: MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x0
02.05.2013 08:51:57,000 kernel[0]: MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
Code:
May  2 08:51:57 localhost kernel[0]: AICPUPMI: Low Frequency Mode : 1600 MHz
May  2 08:51:57 localhost kernel[0]: AICPUPMI: Clock Speed        : 3500 MHz
May  2 08:51:57 localhost kernel[0]: AICPUPMI: Max Turbo Frequency: 3900 MHz
May  2 08:51:57 localhost kernel[0]: AICPUPMI: CPU P-States [ (16) 35 ]
May  2 08:51:59  kernel[0]: AICPUPMI: CPU P-States [ 16 35 (37) ]
May  2 08:52:08  kernel[0]: AICPUPMI: CPU P-States [ 16 35 37 (39) ]
May  2 08:52:10  kernel[0]: AICPUPMI: CPU P-States [ 16 35 37 (38) 39 ]
 
@iStigPL,

Factory Apple iMacs use less p-states, but you can try to increase the value of Name (APSN, 0xNN) to see if that gives you a few more p-states.
 
Status
Not open for further replies.
Back
Top