Jump to content

Can I use wrmsr on Linux to force my non-K CPU to run at the single core turbo frequency on all cores indefinitely?

I'm on a Dell Precision M4500 laptop with an Intel Core i7-740QM processor. I've noticed that sometimes, my machine's CPU performance is a little bit less than what I want (shoutout to Google Docs), but the system is only on base clocks or barely turbo-ing, so I think there may be more performance available. I tried the laptop and prebuilt subforum and got no responses, so I'm trying here because it seems to have more activity, even if my post is not a 100% perfect fit.

 

I've done some research and found out that the reason why non-K series CPUs cannot be overclocked is because the CPU has a hardware limit for how fast the onboard clock multiplier will run, and screwing with the clock input provided by the motherboard will cause more problems than it will solve and probably can't even be done with my motherboard. However, I've also heard that the CPU frequency is controlled with software, and therefore it should be possible to override the default turbo behavior with whatever I want from within the operating system. I've also heard that the maximum frequencies under given conditions are really just suggestions built into the processor that the CPU governor obeys, other than the maximum frequency that the processor is capable of being a hard limit.

 

If what I've said so far is correct, that means that even though it is technically out of spec, I should be capable of using some msr hacks to force my CPU to turbo even when it doesn't want to and beyond what it is rated to be able to do, such as the single-core frequency on all cores. According to cpupower, this frequency is 2.93 GHz, which is substantially more than the 1.73 GHz base clock. So, am I able to do this? I haven't found anything that's super convincing either way. If so, I can't find any easy to follow guides about how to do it. If not, what exactly is preventing me from doing it and what is the closest I can get to what I want?

 

Additionally, I understand that running at a higher frequency means more power consumption and therefore more heat because thermodynamics. My laptop runs at about 80°C in its current state, leaving about 20°C of difference to the 100°C maximum temperature rating of my CPU. Is that enough headroom to do this, or do I need more cooling? If so, how much additional cooling do I need? Can I install a desktop cooler on a laptop motherboard (I don't mind cutting a hole in the bottom of my laptop) to provide this additional headroom? The fact that my laptop uses PGA988 suggests that there's some kind of standard form factor that a cooler could be made for, but the fact that it appears to be a mobile-only socket suggests that maybe nobody thought of actually producing such a cooler. Are alternative means of mounting the cooler a good idea or would they not provide good enough contact? Can I make my own cooler with materials like foil or pipes? Do I instead need to provide more airflow, such as by rewiring the fan to the 19V power supply input rather than the 12V fan connector? Or am I worrying about this too much?

Link to comment
Share on other sites

Link to post
Share on other sites

The 740QM has a locked multiplier. Many have tried but no one has found a way around this limitation. Head to Ebay and get a 920XM 940XM. The Extreme CPUs have unlocked multipliers and unlocked turbo power limits. The rest do not.

Link to comment
Share on other sites

Link to post
Share on other sites

If I can't make it turbo beyond what it's supposed to, is there a way to at least make it turbo the way that it is supposed to? It seems like it really does not want to go above base. Also, why the fuck are 920XMs going for $50 and 940XMs going for $100? They're 10 years old. If I absolutely must spend money (thanks Intel), I'd rather get a more recent laptop than spend more money on this one, especially since I'll have to replace the entire laptop when I go to college anyways.

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, Zm1TDkSnQkY4KEqskCARSBpk said:

It seems like it really does not want to go above base.

The 740QM has a 45W TDP rating. Intel locked the turbo power limit to 45W so when running any stressful app, turbo boost will be completely disabled.

 

Max Multiplier

1 Core Active - 22

2 Cores Active -19

3 Cores Active - 14

4 Cores Active - 14

 

Turbo Boost Disabled - 13

 

The marketing guys loved the big max MHz numbers but in any real world app, this CPU will spend very little time at those high multipliers. Sounds like your CPU is running as Intel intended.

 

At full load the 920XM can run almost 100% faster than the 740QM. That is why the 920XM still sell for a decent price. The power limits are unlocked so you can increase those to avoid any power limit throttling. The 1st Gen XM series were some of the few Extreme processors that were truly in a different league compared to the 720QM or 740QM.

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, unclewebb said:

when running any stressful app, turbo boost will be completely disabled.

What exactly counts as "stressful?" I imagine it wouldn't spend much time at all core turbo, but if I'm running a heavy single-threaded workload, that should still cause one core to turbo, at least for a little bit, right? I'm not seeing that either. Does it only happen when the other cores are at the minimum 930 MHz?

8 hours ago, unclewebb said:

That is why the 920XM still sell for a decent price.

That "decent price" is way more than I'm willing to pay. At that price, we're entering the level of new low-end processors that still have more computing power than what the 920/940XM can offer. That's also dangerously close to the price of getting a newer (but still used) laptop, which should still have more computing power while using less power. Additionally, the main difference from the CPU I already have appears to be that Shintel has removed artificial limits that they have imposed on my CPU, which should not exist on any CPU. This reminds me of Tesla intentionally limiting motor current and battery charge levels, then charging people to have those artificial limits removed so they can make use of the hardware that they already have. Fuck that. I'm never going to buy from either company until they clean up their act.

8 hours ago, unclewebb said:

The 740QM has a 45W TDP rating. Intel locked the turbo power limit to 45W

How is the 45W limit enforced? Does the CPU know how much power it consumes at any given frequency without actually measuring, or does it measure its power consumption? If it's the latter, is it something that I can desolder, short out, or otherwise tamper with to make the CPU think that it's using 0W at all times, like I've seen being done in the RTX 2080 overclocking video?

 

I seem to have found someone doing this exact thing on a non-K i7-8550U, which is why I thought I could do it. https://gist.github.com/Mnkai/5a8edd34bd949199224b33bd90b8c3d4. However, Intel's documentation does not appear to tell me where MSR_RAPL_POWER_UNIT and MSR_PKG_POWER_LIMIT is on my CPU, and 0x606h, 0x610h (the ones used on the page) does not seem to be readable or writable. I do have MSR_PLATFORM_INFO and MSR_TURBO_RATIO_LIMIT, but I cannot adjust MSR_TURBO_RATIO_LIMIT. Do MSR_RAPL_POWER_UNIT and MSR_PKG_POWER_LIMIT even exist on my CPU? 

Link to comment
Share on other sites

Link to post
Share on other sites

55 minutes ago, Zm1TDkSnQkY4KEqskCARSBpk said:

I cannot adjust MSR_TURBO_RATIO_LIMIT

The 740QM is a locked processor so the turbo ratio limits are locked. Intel did a great job locking these processors down to force consumers to spend extra money on one of their Extreme processors (920XM).

 

1 hour ago, Zm1TDkSnQkY4KEqskCARSBpk said:

I seem to have found someone doing this exact thing on a non-K i7-8550U

Intel's 2nd Gen and newer Core i CPUs use different power control registers compared to your 1st Gen 740QM.

 

MSR_TURBO_POWER_CURRENT_LIMIT  0x1AC

 

The public documentation explains the two values, TDP and TDC, that are contained in this register. TDP is the power limit which is used to control Intel Turbo Boost and TDC is the current limit. Just like the turbo ratio limits, this register is locked in your 740QM. These power limits are unlocked in the Extreme processors. This makes a huge performance difference when a CPU is fully loaded.

 

Power consumption is not measured power consumption. It is an estimated value calculated internally by these CPUs. Its only purpose is to control the turbo boost function. I do not think any user software has access to this information in the 1st Gen Core i CPUs. Only the later gen processors allowed MSR access to this data.

 

1 hour ago, Zm1TDkSnQkY4KEqskCARSBpk said:

if I'm running a heavy single-threaded workload, that should still cause one core to turbo

Many monitoring programs do not report CPU speed accurately when Intel Turbo Boost is active. Try using ThrottleStop.

 

https://www.techpowerup.com/download/techpowerup-throttlestop/

 

ThrottleStop can accurately measure any tiny change in the CPU multiplier because it follows the Intel recommended monitoring method. Set the TS Bench test to 1 Thread. Post a screenshot of ThrottleStop while the CPU is running this test. The C states have to be enabled in the BIOS if you want your CPU to use the maximum multiplier. Any Windows background tasks will activate additional cores and this will reduce the multiplier the CPU uses. This program will also show you what TDP and TDC are set to and will show you that they are locked.

Link to comment
Share on other sites

Link to post
Share on other sites

Is there a Linux equivalent for throttlestop? I do not have Windows installed on this computer, and do not wish to destroy it. Also, my BIOS does not offer any CPU speed settings other than enabling and disabling speed step, turbo boost, and hyper threading. Does having speed step and turbo boost on cause the necessary configuration to be applied?

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, Zm1TDkSnQkY4KEqskCARSBpk said:

Is there a Linux equivalent for throttlestop?

No.

 

For best performance; SpeedStep, Turbo Boost and hyper threading all need to be enabled in the BIOS.

Link to comment
Share on other sites

Link to post
Share on other sites

I am unwilling to enable hyperthreading because Shintel hasn't released a zombieload patch for this CPU, but the other two are enabled.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×