You are not logged in.

#1 2024-04-12 05:20:30

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

A) Introduction
B) Details
C) Related Links


A) Introduction



Just like the title says, This CPU cannot turbo boost more than 2GHz, usually when it's under full load 100%.

But It's not caused by overheat throttling(on Linux, it's never exceeded 60degrees).
1) I used to suspect it was a Power Throttling issue but I've tried multiple tools and adjusted the power configuration, doesn't help at all.

(cpupower // tlp // thermald // throttled // power-profiles-daemon // intel-pstate // intel-rapl-msr  // x86-energy-perf-policy // s-tui // turbostat disable SecureBoot I still cannot get it working.)



This issue ONLY happens on Linux. All kernel version is affected.(stock, zen, surface).
On Windows, it can boost up to 4.2GHz and 35W without a problem.


------------ not important --------------
This issue has been troubling me for years.
Thanks to Linux not being resources hungry, I could tolerate it.

But with this low frequency, I cannot run a lot of games smoothly due to CPU bottleneck for GTX1060(Mobile), long compiling time.

Due to this issue not being Arch Specific, I didn't try here. Hopefully you guys wouldn't mind.

2) I've already reached out for help on multiple platforms Intel(Community,Emails,Discord), Microsoft(Emails), Reddit, Limmy, TechPowerUp,Github(linux-surface.
I've also made a bug report to Kernel bugzilla.


3) I've Arch, Fedora, Debian installed on my system; I've also tested these distro in Live Environment (Mint, MX, Ubuntu, Nobara, Garuda, CachyOS...) but they all suffer the same issue.

------------ not important --------------



B) Details

Essentially, If I run heavy CPU process(80%), the CPU will throttle down from 2GHz to 1.5GHz or less. (https://github.com/erpalma/throttled says it's current throttling)

4) I tried to run test with stress-ng, s-tui and noticed it's when all cores at high utilization, the CPU throttles.

throttled_Turbostat_S-Tui_cpupower
As shown above, all 8 cores is stressed with s-tui. And when the CPU is limited below 10W Pkg, 1.3GHz while temp not higher than 55C.

Windows_i7-8650U
ThrottleStop
On Windows though, the CPU can be function just fine. I use ThrottleStop to limit PL1:22W, PL2:30W



5) I've tried kernel parameters for Intel-pstate from https://wiki.archlinux.org/title/CPU_frequency_scaling#Scaling_drivers.
Active, HWP mode no changes; Passive or disable though, the CPU can boost up to 2.1GHz for a long time but that just it.


6) I've read about MSR, MMIO topics but I think cpupower, intel-rapl combines is doing similar things.

7) I began to suspect It's M$ doing stuff to limit Linux but another Surface Book 2 user who has i5-7300U does not face the same issue I've.

8) I've found multiple cases related to this Intel line processor (Kaby Lake Refresh)[Covering i7-8650u, 8550u, 8665u] on multiple platforms(DELL,Thinkpads..).
https://askubuntu.com/questions/1328008 … untu-20-04
https://askubuntu.com/questions/1329587 … untu-20-04
https://chat.stackexchange.com/rooms/12 … and-igntec

Related Links

9) This is the Surface Kernel Github repo, I opened the first post here
https://github.com/linux-surface/linux- … ssues/1041

10) I've contacted Intel & Microsoft but they either say it's OEM issue or Linux issue. They weren't helpful at all.
https://community.intel.com/t5/Processo … 828#M67367

11) This is the kernel bugzilla report I made
https://bugzilla.kernel.org/show_bug.cgi?id=218212

12) I tried to reached out on other wider platforms but didn't get many answers
https://lemmy.world/post/8883518
https://www.reddit.com/r/linux4noobs/co … /?sort=new
https://www.techpowerup.com/forums/thre … pt.316202/

This is the performance we can normally get:
https://www.reddit.com/r/SurfaceLinux/c … an_get_on/
https://www.reddit.com/r/Surface/commen … cinebench/d4u

Last edited by Ramen_LadyHKG (2024-04-22 14:59:57)

Offline

#2 2024-04-12 05:24:22

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

Hopefully these are enough to covered the issue.
If not I can provide as much as i can. Thank you

I was a little rude dealing with M$, Intel staff. I am sorry
I will try to be more helpful and patient here.

Hopefully we can come up with a solution and help others who suffer the same.

Offline

#3 2024-04-21 20:22:02

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

exactly like this

https://bbs.archlinux.org/viewtopic.php … 8#p2166298

Last edited by Ramen_LadyHKG (2024-04-21 20:27:57)

Offline

#4 2024-04-23 21:16:50

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

Offline

#5 2024-05-06 13:06:16

MS-DTYP
Member
Registered: 2020-05-01
Posts: 28

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

1. Have you updated your firmware with fwupd (including Intel ME) and also microcodes?

2. Your Linux kernel version is outdated today.

3. Why are you using ThrottleStop on Windows? I think you should compare clean Windows and clean Linux benchmarks, without any 3-rd party software.

Last edited by MS-DTYP (2024-05-06 13:19:27)

Offline

#6 2024-05-10 16:30:25

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

MS-DTYP wrote:

1. Have you updated your firmware with fwupd (including Intel ME) and also microcodes?

2. Your Linux kernel version is outdated today.

3. Why are you using ThrottleStop on Windows? I think you should compare clean Windows and clean Linux benchmarks, without any 3-rd party software.

1. Yes, it's up-to-date

2. I opened this post about a month ago, yes it's outdated for now. But I've already updated to the latest 6.9 currently running on my system, the issue pre-exist..

Even if it's outdated on Arch, it's no where near outdated on other distribution.

As I had told, I had already installed multiple distro to test this issue, they all have the same problem.

3. Yes, clean Windows perform normally, scale up to 3.5GHz, 30W at around 90 degrees.  I use Throttlestop to test the limit of this machine and I cannot do the same with Linux on this machine.

Offline

#7 2024-05-10 18:17:32

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 22,169

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

You can generally not reach turboboosts on full load stress tests (that's why they're called "turbo" they are reachable under specific lower general load scenarios, not when blasting everything). Stress one core, check whether that reaches boost clocks

Last edited by V1del (2024-05-10 18:18:58)

Offline

#8 2024-05-11 16:02:49

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

V1del wrote:

You can generally not reach turboboosts on full load stress tests (that's why they're called "turbo" they are reachable under specific lower general load scenarios, not when blasting everything). Stress one core, check whether that reaches boost clocks

sorry, my English is not good. I didn't describe clearly in this post.

Let's put it this way.

This i7-8650U capable to run at base clock 1.9Ghz,and up to 2.1GHz with 25W, potentially up 4.2GHz when turbo boost.


On Windows, without any system modification. It operates at 2.5GHz~3.5GHz(All core) when gaming or compiling code consistently (90% CPU avg usage), does not overheat, never thermal throttle, at around 80C~90C, 25W PKG most of the time.

While Linux, it runs around 2.1GHz idle. When iGPU in use(like playing YouTube Video), it drops down to ~900MHz~1.4GHz.
When 90% CPU avg usage, it also drops down to that level.


Does that sounds normal to you?

Last edited by Ramen_LadyHKG (2024-05-11 16:03:13)

Offline

#9 2024-05-11 16:07:32

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

V1del wrote:

Stress one core, check whether that reaches boost clocks

Yes, when one only core is stressed, it function fairly well.

But you wouldn't run a system with only 1 core of a 4C8T CPU, would you?


https://askubuntu.com/questions/1329587 … untu-20-04

this post explain a little bit better than me.

My situation is similar to that but updating kernel or changing distro didn't solve my problem.

Offline

#10 2024-05-11 16:10:09

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

I can provide any test or info to prove why this is not normal.

Can you give me a suggestion?

Offline

#11 2024-06-11 19:52:43

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

s-tui
Geekbench 6

> **s-tui** is a CLI tool to stress CPU to 100%. You can set the number of cores/threads to stress.
> Running it as root can output the power usage of the system.
> 630b2a81-5398-4f98-88ee-310f8b84e9a2
> My CPU frequency hardstuck below 2GHz when more than 6 threads are at 100% usage.

This is my Geekbench 6 benchmark on Ubuntu and Windows on my Surface Book 2 with i7-8650U.

> a11b3432-2037-42cb-b935-d35f8c086070

My Surface Pro 5 with i5-7300U is running even faster than my Surface Book 2 with i7-8650U on Linux.

> 7f1c46b0-94af-4f34-8468-b043d7b2e00b

https://browser.geekbench.com/user/506131

Last edited by Ramen_LadyHKG (2024-06-11 22:27:24)

Offline

#12 2024-06-15 03:21:45

Ramen_LadyHKG
Member
Registered: 2024-04-12
Posts: 11

Re: My CPU (i7-8650U) cannot turbo boost exceed 2GHz ( Surface Book 2 )

https://github.com/linux-surface/linux- … 2161428267

Holy shit
I'm a fxxking genius
a9d9ed19-7c7e-43fe-9804-e8be52a240ec


checkpot
I've never seen the frequency indicator up to 3GHz
never seen temp up to 60C

this is the first time I'm happy to see the CPU is hot

---
anyway, so the solution is

write the value to

msr

I had tried

wrmsr

before but I'd never able to find the correct memory address to write to.

So after some digging at

the Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3B: System Programming Guide, Part 2

https://www.intel.com/content/dam/www/p … manual.pdf

and this kernel issue ticket

https://patchwork.kernel.org/project/li … /#24889996

gave me a hint of the PL4 address is

0x601

i try to read the address value

sudo rdmsr 0x601

it return

78

.

I know it's a hex variable, so in decimal is

120

but I couldn't see any relation to #PL4 limit 15W.

so some more digging went by

I found this

Thanks for the info. I had a look at the code but I cannot see anything obvious why you are being prevented from checking that box. I will look some more but even if you could check this box, it will not be able to help. You need to find a way to unlock the MSR current limit or set it higher.

This register is in units of 1/8 Amps. 208 Amps means that register should contain 1664 which converted to hex is 0x680. Find that hex number and change it to 0x980 and that should give you some more headroom. smile

https://www.techpowerup.com/forums/thre … st-4738761

so I

15*8

=

120

bomb, checkpot. exactly the same as my current PL4 setting

so I want to test

30

as PL4, 30\*8=240

then, convert it to hex,

240

=

F0
sudo wrmsr 0x601 F0

instantly, the CPU turbo up to 4.0GHz

----

https://github.com/linux-surface/linux- … ssues/1041

almost 2 years, can you believe I've been using this at 2GHz max for that long.

Offline

Board footer

Powered by FluxBB