System process consumes a single core fully on Framework 16 + Windows 11

OS: Windows 11 23H2 with latest patch
Laptop: Framework Laptop 16 with 7940HS and dGPU

I am seeing an eventual high CPU usage by the “System” process in Windows. It doesn’t start right away, and rebooting helps. I am not sure whether the CPU usage is triggered by a single event or increases over time.

Task manager shows it as 10-20%

Process Explorer shows it as ~7%

image

When looking at the stack frames that the System spends the most time in Process Explorer, it spends most of the time in ntoskrnl.exe!CcUnpinRepinnedBcb+0x370 stack frame:

The only thing I have been able to find is this question which mentions Framework and the same stack frame, but there the person didn’t really find any solution. And the only proposal is to downgrade the AMD software below the version that Framework ships.

I use the laptop for work, so I don’t want to play too much with the install to not screw it up further, but I will do a different Windows install on a separate SSD to test different approaches to fixing this problem.

Some possibly relevant facts about my Windows install:

  • WSL2 and Docker are installed, but don’t run most of the time
  • Two external 4K monitors connected through a DisplayPort USB-C dongle with charging passthrough. The dongle is connected and disconnected during the day to transition from desk mode to laptop mode :slight_smile:
  • The laptop is hibernated (not put into sleep mode) every day, so it doesn’t get rebooted often. So I normally have days of system uptime.
  • Dev Drive is set up and used
  • Smart App Control is enabled in Windows Security control panel

Do you see a similar behavior on your machine? If not, and you have Windows 11, could you let me know how’s your config different from mine with regards to the facts above, and how is it similar?

Edit: After posting this I rebooted and opened the Process Explorer Threads window for System process. Over the 90 minutes after the reboot the CPU share of the ntoskrnl.exe!CcUnpinRepinnedBcb+0x370 stack frame has been rising from zero to 0.32%:

So, I can add that the CPU usage gradually increases, not starts abruptly due to some event.

Edit 2: I closed all applications and left the laptop to idle and the stack frame stopped consuming CPU after some time. Then I launched my applications again, it went back to 0.6% for some time, but now it’s <0.01% again. Curious.

Edit 3: I thought this was due to the “Turn off hard disk after” power profile setting. I disabled it and it didn’t make a difference. At idle the CPU usage by the stack frame goes to 0%, but as soon as I even just open the Start menu, it goes up. Also, even if it just idles for several hours without any CPU usage, once this problem reappears, it starts consuming CPU proportional to uptime, even if all of that uptime the stack frame wasn’t active. So, seems like this is not some kind of a leak.