Jump to content

Creating a x8 multiplier SSDT for cooler temps?


X-TRiAL
 Share

26 posts in this topic

Recommended Posts

Hi I have a laptop, see sig. 

I have perfect power management, but I was wondering if someone could design a SSDT for me to only have the x8 multiplier in it. 

So that when I'm using my laptop, say on my bed, it will keep cooler? Would that work? 

 

Thanks.

Link to comment
Share on other sites

First, what is you're processor? You can do it this easily. You mean using the laptop on the bed, like as a surface? 

As what my sig says... i7-2630QM. 

Yes thats what I mean, so on top of the covers which may cause the fan to be slightly blocked compared to being on a desk surface. 

 

EDIT: Maybe it could go up to x10 too? If you are making it for me, could you include two SSDTs? One that does x8, x9, x10 and one which just goes up to x8. Thanks.

Link to comment
Share on other sites

Can't do that. I can create a standard one. But information is available about SSDT. Ideally, you shouldn't be using your laptop on a soft surface like a bed.

What happened to "you can do this easily"? I said in the first post that I already had power management working, hence having my SSDT already. I want to build a custom one... therefore your posts are kind of irrelevant. Please let me know of anyone who decides not to ever use a laptop on a bed, I think it is pretty common. 

 

I feel that this is possible by the right person knowing what to do, however I do not.

Link to comment
Share on other sites

Oh yeah, I can do it easily. It's as simple as deleting individual lines in the SSDT.aml, which is why I said that you can do it easily. I believe in teaching how to do something rather than doing it on behalf of someone. And since my posts are irrelevant, I'll make it relevant by stating the obvious: you are being lazy. This is something you could have used Google for. And finally, there is nothing wrong with using a laptop in bed as long as the air intakes are not blocked and soft surfaces like beds usually do this. However, you can do whatever you please. Block your intakes or glue pieces of cotton over them for all I care.

Link to comment
Share on other sites

Oh yeah, I can do it easily. It's as simple as deleting individual lines in the SSDT.aml, which is why I said that you can do it easily. I believe in teaching how to do something rather than doing it on behalf of someone. And since my posts are irrelevant, I'll make it relevant by stating the obvious: you are being lazy. This is something you could have used Google for. And finally, there is nothing wrong with using a laptop in bed as long as the air intakes are not blocked and soft surfaces like beds usually do this. However, you can do whatever you please. Block your intakes or glue pieces of cotton over them for all I care.

Thanks for your help...  :huh:

 

I've managed to edit my SSDT to have only x8 multiplier but don't know how to disable the turbo from it. 

I'm getting these states: 

 

06/08/2013 00:22:37.000 kernel[0]: MSRDumper PStatesReached: 8 24 26 27 28 29
Link to comment
Share on other sites

Ok turns out I don't think I've edited my SSDT correctly. I'm getting this: 

06/08/2013 13:04:36.000 kernel[0]: MSRDumper PStatesReached: 8 12 20 24 26 27 28 29

I have found the kext "DisableTurboBoost.kext" and have applied it after rebooting and it does disable the turbo states (which is good). 

However my SSDT is not edited correctly as I can still reach 8, 12 & 20, I only want to hit either just 8, or have the ability to have 8, 9, 10, 11, and maybe 12. 

This is with the kext loaded and my edited SSDT: 

06/08/2013 13:12:01.000 kernel[0]: MSRDumper PStatesReached: 8 20

I have seen 12 presented in this too.  

 

So when it's edited correctly I can then just have Clover reading that SSDT and then booting with the kext "DisableTurboBoost.kext" that should then give my requested output. 

I will carry on trying to edit my SSDT but this is what I have so far: 

 

EDIT: Just wondering if this is actually possible? As my CPU speed is 2GHz so I think it will always hit the state 20, due to this. I think it may only be possible if I change the frequency to 800MHz, Clover can do it but its said its unstable, not sure if its a good idea. In my sense the SSDT is finished, I don't see any more editing :/ 

Archive.zip

SSDT.aml.zip

Link to comment
Share on other sites

I see the edits you've have made and there is only one state under the header. Before I proceed, you should know that even with certain intermediate p-states customized, such as 9, or 11, OS X may only choose to use certain values based on however the OS's power-management is designed. What does this mean? Even with edits, you may not see certain states, but I can guarantee that you'll always see the lowest state. I'll give it a go.

 

EDIT: Alright, here is a SSDT with states defined from 800 MHz to 1200MHz, as you requested. 

SSDT.aml.zip

Link to comment
Share on other sites

I see the edits you've have made and there is only one state under the header. Before I proceed, you should know that even with certain intermediate p-states customized, such as 9, or 11, OS X may only choose to use certain values based on however the OS's power-management is designed. What does this mean? Even with edits, you may not see certain states, but I can guarantee that you'll always see the lowest state. I'll give it a go.

Yeah I understand that, sometimes I don't hit my full multiplier x29 but I know why. Like I said in my last post I think this may be impossible due to the CPU being clocked at 2GHz. So I would have to change the frequency and this can't be done just with a SSDT. 

Link to comment
Share on other sites

Try that SSDT and see if it makes a difference. It should be customizable since 2GHz is just the base frequency. Not hitting the max is something related to OS X because in Windows my i5 2450m occasionally goes up to 3100 MHz, its maximum. On OS X under load, it goes to 2900 MHz. Perhaps it has something to do with performance vs efficiency i.e 2 logical cores at 3100 MHz vs 4 logical cores at 2900 MHz in my case. Though MSRDumper indicates that x31 is present. 

Link to comment
Share on other sites

Try that SSDT and see if it makes a difference. It should be customizable since 2GHz is just the base frequency. Not hitting the max is something related to OS X because in Windows my i5 2450m occasionally goes up to 3100 MHz, its maximum. On OS X under load, it goes to 2900 MHz. Perhaps it has something to do with performance vs efficiency i.e 2 logical cores at 3100 MHz vs 4 logical cores at 2900 MHz in my case. Though MSRDumper indicates that x31 is present. 

I tried your SSDT and all I got was KP. I then tried to add with Clover the following:

DropOemSSDT=Yes 
GeneratePStates=Yes
GenerateCStates=Yes

But I could not boot, I had to boot linux and then replace the SSDT with my one. 

Link to comment
Share on other sites

That is strange because the SSDT was created normally, except it doesn't have all of the states. How do you normally boot with an SSDT in Clover? GenerateXStates=No for both cases and drop SSDT=yes, correct? Perhaps OS X needs to see all declaration, in which case I am not sure. By the way, the SSDT you posted lacks APSS declarations for CPU0. So that's probably why, you didn't see any change. 

Link to comment
Share on other sites

I have been booting with my SSDT in ACPI/patched/ GeneratePStates=Yes GenerateCStates=Yes DropOemSSDT=No. 

I tried your SSDT with just DropOemSSDT=Yes and it didn't boot. 

That SSDT was generated from PikeRAlpha's script ssdtPRGen 6.6, so maybe it doesn't need APSS declarations? 

 

Here was the vanilla one generated with his script: 

SSDT.aml.zip

Link to comment
Share on other sites

You should NOT use DropXStates=yes when using a custom SSDT, only DropSSDT=yes. Use the SSDT you first customized since that didn't give you a kernel panic. With DropXStates enabled that would explain why you would still see all states. To my knowledge, an SSDT needs APSS declarations, those are the p-states.

 

EDIT: Everything seems fine with the SSDT. Just a different generation method. Again, try your SSDT with the single state of 800 MHz with GenerateXStates=No and with DropSSDT=Yes. If that gives the desired result, then you can add any states you wish. 

Link to comment
Share on other sites

You should NOT use DropXStates=yes when using a custom SSDT, only DropSSDT=yes. Use the SSDT you first customized since that didn't give you a kernel panic. With DropXStates enabled that would explain why you would still see all states. To my knowledge, an SSDT needs APSS declarations, those are the p-states.

 

EDIT: Everything seems fine with the SSDT. Just a different generation method. Again, try your SSDT with the single state of 800 MHz with GenerateXStates=No and with DropSSDT=Yes. If that gives the desired result, then you can add any states you wish. 

I can boot with this one attached. Do I need anymore edits inside of it? I still get turbo states inside of it though. Mostly all of the time its hitting 2.6Ghz (26 state). Unless I use DisableTurboBoost.kext, then it sits at 2Ghz. Can I not get it to sit at 800MHz? 

SSDT.aml.zip

Link to comment
Share on other sites

If you have generate states as no in config.plist, then I'm not sure what to do next. I can't tell why you get a kernel panic using my SSDT and not that one. Your current SSDT only has one state so it should work as desired. Check IORegistry x86 to see what P states are there. 

Link to comment
Share on other sites

I had a look in IOReg but first of I'm not sure what I'm looking for. I found this post where someone has their desktop CPU locked to 800MHz unwillingly. Be nice to find out how they done it. Pike said here to look for these values in IOReg: 

 

Take a look at the value of property CPUMaxEfficientPState in IORegistryExplorer and you'll find it pointing to the P-State with the lowest possible P-State (read frequency) that your processor supports (again, 1600 MHz). And this logic is true for every single Ivybridge based Mac dump I have seen so far. Sure. The frequency may be lower for some processors, but CPUMaxEfficientPState will point to the lowest possible P-State it can reach.

Now look at CPUMaxNonTurboPState. This value points to the P-State with the normal operating clock speed (frequency) of the installed processor. In your case, with your Intel i7-3770K that should be 3500 MHz.

 

 

But in my IOReg these values are not there. 

I did however find this: 

PerformanceStateArray Array 1 value 
0 Data <20 03 00 00 0d 3d 00 00 0a 00 00 00 0a 00 00 00 00 08 00 00 00 08 00 00>

But it doesn't really mean anything. 

 

I'll attach my IOReg... 

 

EDIT: Looking at that thread it seems that ssdtPRGen v1.5 made people have errors sticking to x8 multiplier. I could do with that :D

Link to comment
Share on other sites

You didn't have to post your IORegistry since it has your serial number, which should be unique. Not that it matters that much, but you should have unique number in case someone uses yours. Anyway, you did find the correct value. One p-state as designated by the SSDT. Another method has to be tried I suppose.

Link to comment
Share on other sites

Try that and provide an update. If I find anything, I'll do the same. Someone wanted something similar but that person wanted to only disable turbo states. The SSDT edits didn't work, but the kext, DisableTurboBoost, did. So perhaps this version of the SSDT generator will be your next best option.

Link to comment
Share on other sites

  • 1 year later...
 Share

×
×
  • Create New...