• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

How to mitigate lag at 100% CPU load on Raptor Lake

XoR_

2[H]4U
Joined
Jan 18, 2016
Messages
2,137
Windows 11, 13900KF
The moment CPU load hits 100% on all cores system becomes very laggy. In some cases like running Prime95 (which is very good at saturating CPU time) and programs like web browser when I try to e.g. type comment to YT video I might at times get literally one second long pauses. So I press a button on keyboard and letter appears only second latter!

I tried changing all sorts of options like speedstep, turbo boost, various windows priority settings, etc. but issue persist.
The only thing which helps is disabling E-cores - so basically disabling almost half of the CPU

I noticed the same issue with Linux when intel_pstate was used and it had to be used to have processes run on P-cores first instead of being assigned randomly.
I guess the it is the same issue that happens under Windows but to a lesser degree. On Linux it made system instantly unusable and it was much harder to ignore. Windows 11 is not that bad and in some cases it feels somewhat usable... but the issue is that there should be almost no lag and especially when CPU is loaded 100% if background application that is using CPU is set to low priority. The way my system behaves is just bad, worse than what I would expect from Pentium 4 HT and more like what XP felt on single core CPU - just its harder to saturate CPU but the moment its saturated its lag time.

I would just get Ryzen CPU like I should have done to begin with but I have DDR4 system and DDR5 prices are insane so that is not a solution currently.
Any way to disable Thread Director... is it even a viable option? Or using Windows 10 on Raptor Lake?
 
I don't get what you get in any of my 13th and 14th gen systems, but I also don't use Windows 11.
 
t is not possible to directly disable Intel Thread Director in Windows 11, as it is a hardware-managed feature integrated into the operating system's scheduler.

However, users can mitigate its effects or force specific core scheduling using the following workarounds:

  • Use CoreDirector: This free third-party application prevents specified processes from being scheduled to Efficiency Cores (E-cores), keeping them on Performance Cores (P-cores). It offers enforcement methods like disabling "Efficiency Mode" for target processes or setting strict CPU Affinities.
  • Power Configuration Adjustments: Windows power settings can be modified to prioritize performant cores. Commands such as powercfg /powerthrottling disable /path "app.exe" can help, though system-wide QOS adjustments using powercfg /setacprofileindex are also available for more aggressive prioritization.
  • Linux Alternatives: On Linux, where Thread Director support is limited or absent in older kernels, users can disable E-cores via BIOS or use the isolcpus boot parameter to isolate E-cores from the general scheduler, manually assigning them via taskset if needed.
  • Windows 10 Comparison: In Windows 10, Thread Director is not active, allowing users to simply disable E-cores in the BIOS to achieve consistent single-threaded performance without scheduler jitter, a strategy that is less effective in Windows 11 due to the OS's reliance on the director.
 
I can disable E-cores in Win11 just fine and then the issue doesn't happen.

It doesn't seem Win11 issue but Thread Director issue. Last time I used Linux the issue in that system was much worse. Windows at least seems to work ok with certain 100% loads like when running Cinebench R23 there is slow down but not that severe as to raise any concerns.

Win10 I have not tried on my RPL CPU so I don't know if it will be able to schedule to P-cores first or not but definitely disabling intel_pstate on Linux resolves the lag issue but also causes processes to be randomly assigned to either P or E cores so performance is inconsistent. Probably the same thing will happen on Win10 unless Windows can somehow prioritize based on maximum core frequency.

IMHO Both Windows and Linux should just have mechanisms like cpu priority based on clock frequency and especially Linux. Linux knows my 13900KF topology, which are P and which are E cores, what the maximum clocks are and which are HT cpus. Yet it ignores all this info and treats processor like it was perfectly symmetrical with each hardware thread being identical. Kinda ridiculous if you ask me.
 
I have this happen on my new Israel foundry 14700k but only maybe 2-3 times when zoning into a Borderlands map I just wait for a few seconds for the CPU to catch up by not moving my character.

I do have Svid Behavior on Typical in BIOS for lower temps. Otherwise I'm worried it will turn my cpu into junk like with my 13700k which I used for 3 years. Crashed on almost any game I played after the 1st year and Intel voltage bug with a bad Bios.
 
It has nothing to do with games though.

It mostly happens with very specific processes hogging all cpu time on all cores e.g. Prime95.
When I run Cinebench R23 MT in a loop that doesn't cause this issue to be very visible. Compiling large projects like Chrome - also everything seems okay. If however I run Prime95 it can hog all cpu time and Thread Director seems to malfunction as it cannot give other applications enough CPU time for them to not feel laggy.

Prime95 (even at low priority!) + trying to type a commend in web browser under YT video will cause pauses between pressing keyboard and letter appearing that can last even more than a second. This should not happen and especially having so many cores out of which CPU time could be taken to handle browser - which especially is foreground application so under Windows at least it should get higher priority from even normal priority background processes.

For this issue to happen Win11 needs to be configured to not push background processes out of P cores - which is the default and thinking about it its obvious that this is the workaround which M$/Intel used exactly because Intel designed bad CPU.

Also the same issue and arguably in much much worse capacity happens under Linux. Heck, Linux running Prime95 becomes just unusable. With Win11 I can even play game and it only experiences mild stutters from time to time. Linux on the other hand makes playing games with Prime95 using all cores impossible. The moment however there is some core left (between prime95 and game also using cpu) then everything is smooth as butter. This shouldn't happen and without intel_pstate it doesn't happen - unfortunately without intel_pstate threads can randomly land on E cores so that's not good. I expect similar situation to happen on Win10 but this I have yet to test.

What I did test was HyperV just in case Intel/MS designed these CPUs for HyperV... and of course it only made lag worse. In general I saw noticeable performance drop with productivity application I use every day so HyperV is no good. I did however attempt at somehow making Windows run like more or less how Windows could run under VirtualBox so hypervisor managing scheduling and then giving Windows less cores to play with somehow mitigate the lag - it of course did not work.

So yeah, it seem Intel doesn't know how to design CPUs it seems. MS also doesn't provide any way to disable Thread Director or any priority based scheduler which could be used as an alternative. Bloody Linux doesn't have such priority based scheduler. Linux even without intel_pstate can read CPU topology and can detect which cores have which clocks and it could use that info to prioritize fastest cores e.g. if P-cores run at 5.4GHz and E-cores at 4.3GHz then schedule stuff on P-cores first and only use E-cores when P-cores are busy. Nope, no such mechanism in Linux. It seems that for each and every non-standard non-symmetric case there are manufacturer provided drivers to handle these cases. No one ever made universal software-only scheduler which could be used instead of Thread Director on Alter/Raptor/Arrow Lake.
 
But.....why do you need to run Prime95 while you type comments for Youtube videos?


Anyway, it might be a cache saturation issue.
 
Prim95 makes the issue extremely visible but I do get worse overall lag than I should when cpu is loaded 100% with normal real workloads. It just isn't so bad as to cause me to be like "something is bloody broken".

Cache issue, ring bus, etc. I would say should not affect such things because this should not be a performance issue. CPU should not lag if scheduler works correctly.

On much much slower CPUs like Pentium D which is CPU notorious for being cache starved and with terrible inter-core latency/bandwidth I never had such issues. Prime95 could run all day long turning my PC in to a space heater and the only way to tell if it was running or not would be tray icon or prime95.exe in task manager. I would expect same being true for 24 core CPU today and especially with hardware bases scheduler which should be superior.
 
What settings are you using in Prime95? It might be your DDR4 not having enough bandwidth to feed all those cores. I just played around with Prime95 and a 4k YouTube video on my 285k + 64GB DDR5-6400 + 5090 machine. Everything seems fine with small or smallest FFTs, but the large FFTs cause a little GUI lag sometimes and crackling audio (Using a USB SoundBlaster). Large FFTs are also using most of my ram. Small/smallest hit the CPU & caches, large hits memory bandwidth. It's not as bad as what you're describing, but I can tell the system is stressed and my machine has a lot more memory bandwidth than a dual channel DDR4 build. Being short on bandwidth could also explain why turning off e-cores helps. Fewer working cores means less contention for main memory bandwidth. It'll also shrink Prime95's memory footprint.

Here's an idea for a test: Try turning off half your p-cores and half your e-cores in the BIOS.
 
  • Like
Reactions: XoR_
like this
For this issue to happen Win11 needs to be configured to not push background processes out of P cores - which is the default and thinking about it its obvious that this is the workaround which M$/Intel used exactly because Intel designed bad CPU.
But why do you want a background process on the P cores? And P95, at that?

It seems like the perfect behaviour to me outside of niche situations like running multiple game servers on a box. It's not really a workaround it's the ideal way to use your cores on a consumer machine.

It's not just about ecores either and isn't new, if you try this on say a 10900k or 11900k (even on Windows 10) you will see foreground processes use the 2 cores with the highest boost (5.3ghz), while background processes will get the slower cores (5.1ghz).
 
Last edited:
I installed very old Win10 from original install pendrive. It detected only 8 cores.
Windows update to 10.0.18362 and there are 24 cores and somehow threads are scheduled to P-cores first.

To make testing a bit ambitious I set E-cores to 43, 42, 41 and 40 (in groups of 4 E-cores) and P-cores 39 down to 31.
Now Cibenench R23 with single core runs on last P-core, the one which has 3.9GHz - less than E-cores though so Win10 knows that P-core is still faster despite slower clock speed.
Running 8 threads Benchmark runs at P-cores running at 3.3GHz to 3.9GHz and last E-core cluster - so according to Windows 10 the 4.3GHz E-core runs faster than P-core at 3.2GHz.
Single threaded score for E-cores @4.3 is ~1200 whereas I got 1274 for P-core @3.2GHz so Win10 didn't entirely got it right but very close.

The real kicker is that Win11 does basically the same thing. I mean its identical.
So it seems Windows 10 has the same scheduler that Win11 has including Thread Director and all.
Maybe there is no function to push background processes to E-cores in Windows 10 but I disable this in Windows 11 anyways.
This I didn't expect. I thought Windows 10 actually doesn't support these CPUs correctly.

But this also means that I cannot really test Windows without the same scheduler as I have on Win11... I guess older OSes like Windows 7 would also see only 8 cores.
Also funny note is that when I first installed that Win10 on different PC with Broadwell it wouldn't boot on my RPL with error that this Windows install doesn't support multi-CPU configuration or something like that.

Anyways, memory bandwidth... that actually makes some sense.
Two years ago I spent few months in Linux and observed massive issue with scheduler compared to which Windows 11 situation is just nitpicking.
In Linux prime95 running on all cores would for example cause games to be unplayable - massive stuttering even on simple game like Prodeus.
On Windows 11 even running Prime95 I can play Prodeus or any game really just fine while Prime95 is running.

I still think the issue is scheduler but is it an Intel thing or Windows thing is hard to say.
One thing I know for sure - starting with Vista (and it didn't really change since Vista because Win11 is still Vista) running Prime95 in the background wasn't free. You could do that on XP and for as long as you didn't hit any power/temperature throttling (or really only temperature - there was no power throttling in the past) and Prime95 ran at lower priority it would be literally invisible to how system ran. Zero slowdown whatsoever. Starting with Vista there would be stutters and lag - and this was supposed to be an improvement to scheduler for especially systems with a lot of CPUs. Somehow I doubt that.

Anyways, the only thing now is how does this all runs on AMD CPUs. It wouldn't surprise me that much if the situation was the same. At the same time it also wouldn't susprise me if it was different.

I cannot replace PC anyways because I am not paying for DDR5. Replacing system to get DDR5 mobo is also out of the question and especially since I am generally happy with the performance. I am just wondering if there is something I could do to improve situation like when I run Prime95. Though apparently there is nothing I can do.
 
I'm carefull with Benchmarks isn't Prime 95 pretty brutal? I run Intel XTU for no more than 5 minutes. That and Superposition Benchmark.
 
Anyways, the only thing now is how does this all runs on AMD CPUs. It wouldn't surprise me that much if the situation was the same. At the same time it also wouldn't susprise me if it was different.
I tried it on a 9600X with 32GB DDR5-6000. Seems ok unless I run the system out of ram. Prime95 large FFT defaults want to use 28GB of ram, which doesn't leave enough for the system and other apps so it starts swapping and gets sluggish. Seems fine if I use "custom" and just lower the max ram usage. Alas, this doesn't prove anything about memory bandwidth since this machine only has 6 cores. With small FFTs it's the same as the 285k. No real discernible difference aside from being a smidge slower since I haven't bothered lowering Prim95's priority.
 
You're simply describing a system which is maxed out on resources. CPU maxed out, cache maxed out and RAM maxed out. There will be serious performance issues when that happens especially when multiple programs are trying to use the exact same resources. A good scheduler will do it's best to allocate resources as efficiently as possible but once the system is maxed out, it's maxed out. No scheduler can fix that.

What you're describing is what many of us dealt with on a daily basis back in the era of single core CPUs and low amounts of RAM. Think of a Pentium system with 16 meg of RAM on Win95 trying to run a game and encode mp3s in the background. It's not going to work. The CPU is going to be maxed out and the OS is going to be constantly swapping in and out of RAM. It will slow to a crawl and nothing is going to run for shit. The history of people shutting down as much as possible running in the background existed for a reason. Computers simply didn't have the resources to run a bunch of stuff at once. Despite having orders of magnitude more resources now, if you max out those resources it's going to lead to the same result as that overworked Pentium.
 
Back
Top