How does HWINFO query the CPPC Preferred Cores data?

senpaiyank

New Member
As in the title.

Recently I noticed that on my laptop Windows 11 has been placing some single core esque workloads on SMT threads, instead of their physical counterparts. Not only that but it is also not favouring the best cores on the CPU (according to the order given by HWINFO). Upon investigating, I found CPPC Preferred Cores to be the culprit. On Event Viewer, the system logs show that Windows thinks all the cores have the same exact level of performance (I used the way described on this reddit post to check, all cores had the same "Maximum performance percentage" value). I'm not sure if this is a problem with Windows itself or my laptop BIOS. I found out that I'm not the only person with this laptop that has this issue though, even saw the issue on a demo laptop from the store.

HWINFO, as I said before, does show the preferred cores order. From what I've read online, the CPPC preferred cores info comes from ACPI. If HWINFO gets the information from there and is able to read it, does it mean that my problem isn't the BIOS or the laptop itself but Windows?
 
Last edited:
Yes, HWiNFO reads CPPC from ACPI and if it reads it right it could mean your problem is in the operating system.
 
I see. Does HWINFO order the cores by comparing each "HighestPerformance" element from the ACPI table?
Nevertheless, not wanting to off topic, it is safe to assume the issue lies in Windows right?
 
HWiNFO calculates it as MaximumPerformance / NominalPerformance * 100 [%]
 
As in the title.

Recently I noticed that on my laptop Windows 11 has been placing some single core esque workloads on SMT threads, instead of their physical counterparts. Not only that but it is also not favouring the best cores on the CPU (according to the order given by HWINFO). Upon investigating, I found CPPC Preferred Cores to be the culprit. On Event Viewer, the system logs show that Windows thinks all the cores have the same exact level of performance (I used the way described on this reddit post to check, all cores had the same "Maximum performance percentage" value). I'm not sure if this is a problem with Windows itself or my laptop BIOS. I found out that I'm not the only person with this laptop that has this issue though, even saw the issue on a demo laptop from the store.

HWINFO, as I said before, does show the preferred cores order. From what I've read online, the CPPC preferred cores info comes from ACPI. If HWINFO gets the information from there and is able to read it, does it mean that my problem isn't the BIOS or the laptop itself but Windows?
With a 5900X on Windows 11, I've found that Windows often decides Core 06 (0-11) - my worst core - is the one Windows Scheduler will use, despite CPPC/PC explicitly being enabled in the BIOS. The options available are Auto, Enabled, Disabled. I've tried all three and, understandably, only disabled makes a small difference.

It would appear the behaviour in the Scheduler changed sometime around the middle of January to the middle of last month. Out of the Microsoft updates installed, obviously, excluding Windows Security-related and .NET updates, the following have been installed (if possible, can you crosscheck?) with the most recent first:
  • Intel Corporation - Bluetooth - 22.100.1.1 (18/01)
  • KB5010414 (17/02)
  • KB5010386 (09/02)
  • KB4023057 (04/02)
  • KB5008353 (29/01)
  • KB5010795 (18/01)
  • KB5009566 (15/01/2022)

I've been using the same AGESA version (1.2.0.3c - 1.2.0.6b is in beta, but I don't use beta BIOSes), and same chipset drivers (with new ones blocked via policy editor). That only leaves Windows as the cause, outside of very niche scenarios.

I have submitted a report on Windows' Feedback Hub, but it's hard to tell if Microsoft uses the feedback or not, as only a generic message is displayed.
 
Will check as soon as I'm able to.

Does the scheduler on your end also place single threaded tasks on your SMT cores (Core X T1)? This is another problem I've found with it and possibly the one that hurts the most. I've seen this behavior on Valorant and PPSSPP (with an unlimited speed and fps cap), would you please check too?

Also what are your results on the Event Viewer? Is it also showing the same "Maximum Performance Percentage" value for all the cores?
 
Does the scheduler on your end also place single threaded tasks on your SMT cores (Core X T1)?
I'll try and perform some tests and see how much load is placed on the logical processor, although that shouldn't be too different.

I've seen this behavior on Valorant and PPSSPP (with an unlimited speed and fps cap), would you please check too?

I don't play either of those games, and I'm not sure what PPSSPP is. I don't mind try it out if you let me know what you want me to actually do (and obviously what PPSSPP is).

Also what are your results on the Event Viewer? Is it also showing the same "Maximum Performance Percentage" value for all the cores?
Can you save an Event from Event Viewer and upload it as an attachment? You can right-click on the Event and export it. Make sure you choose English as an option. The files are tiny.
 
Did you figure out why Windows isn't using CPPC? I have the same issue on my Xeon W7-2495X and ASRock W790 WS on Windows 11 22H2 Build 22631.1830. HWiNFO shows the preferred cores correctly, but Windows Event Viewer shows the same value for all cores. The scheduler does not use the preferred cores when running single-threaded loads.
 
It turns out that the preferred cores order in HWiNFO is randomized on each reboot. On BIOS 3.04 on my ASRock W790 WS board, the "Highest Performance" counter reports 255 for all CPUs.

Perhaps HWiNFO should display a warning that preferred cores are not accurate if all of them have the same value.
 
Sorry for the late reply. ASRock sent me a beta BIOS which fixed the ACPI CPPC issue. Now the favoured cores are reported correctly in HWiNFO, Intel XTU, and Windows Event Viewer based on the overclocked ratio.
 
Back
Top