I think cpu usage is broken again

Pinkie Pie

Well-Known Member
1683149658421.png
thread usage one resembles it the most but its often reporting higher, while total cpu usage is reporting 2.2% when cpu is actually using 50%
I am gonna assume you need debug data but i have no way to test atm on another build of windows 11 i am on 22h2 22624.1680
dbg file included.

Just while watching
This is on 7.43-5080 seems to happen on 7.44 that just released as well dbg file is from 7.43 tho not sure if user error and me being stupid or just that time of the year again, been broken for quite a while.
 

Attachments

  • HWiNFO64.DBG
    1.6 MB · Views: 1
Last edited:
Seems if i set update time as low as possible core utility is what matches cpu usage but i would expect total CPU Usage to match whats in task manager altho whats odd if i run cinebench it maxes at to 100% but during a game it only shows 2% even tho its obviously using more.
 
This was an intentional change in latest builds. There are different opinions on what's the "correct" CPU Usage - some believe it's the legacy time-based "CPU Usage" or the new "CPU Utility" reported by Task Manager. I'm personally inclined to trust the first value more as it also matches if one put selective load on the CPU. I verified this also using Intel's tools that can put dedicated load on the CPU and in this case the "CPU Usage" matches perfectly the load expected while the "CPU Utility" (and Task Manager) are way off.
So the "CPU Usage" is again reporting the legacy time-based usage and each user can chose what he prefers.
 
I would prefer having the one that matches task manager could there not be one added that reflects that ? cos its either under reporting via total cpu usage or over reporting via core utility
 
"CPU Utility" should reflect Task Manager, it's using the same metric.
But it go's up to 126 on total cpu utility on core utility it go's to 137.9% is this a bug cos task manager only go's to 100% i tried offseting only to realize it makes it not reflect task manager anymore, so seems its pretty much same as task manager except at 100% it reports 126% or higher.

Just random off-topic i just see core temps minimum reporting 0.0c on my 5950x :D no idea how that happened.
1683206500118.png

core utility and total cpu utility
1683206542263.png
 
Task Manager caps that value to 100% but in reality that metric goes well over 100%. It has been explained here a couple of times.
 
I understand the difference between time-based CPU Usage and the new CPU Utility, but I think CPU Usage really is broken considering time-based metrics. Before the latest update, MSI Afterburner CPU usage numbers were perfectly matching the Total CPU Usage from HWinfo64. I just updated HWinfo and found out it is no longer the case. Please refer to the attached printscreen ("Uso total da CPU" is Portuguese for "Total CPU Usage"). Notice that, in Hitman 3, while Afterburner says 43% (time-based metrics), HWinfo says 7%. Last version (v7.42, if I'm not mistaken), they were the same. I'm on Windows 11 Pro 22H2, by the way.

260f2ee7-5d61-4505-8f72-8d87eee9bd75-jpg.9203
 

Attachments

  • 260f2ee7-5d61-4505-8f72-8d87eee9bd75.jpg
    260f2ee7-5d61-4505-8f72-8d87eee9bd75.jpg
    1,008.9 KB · Views: 34
And who says the CPU Usage in MSI Afterburner is correct?
To explain the situation in more detail:
The legacy time-based usage was determined via internal Microsoft API utilizing ratio between UserMode+KernelMode time spent and IdleTime. This was working since maybe WinXP (or even NT, I don't recall anymore). This was the only metric available for a very long time until something happened later in Windows 10. Some (undocumented) changes happened in some of the internal APIs which resulted in odd reporting of the IdleTime by operating system. During this time MS also introduced the new CPU Utility metric that worked on a quite different principle. The change that happened in IdleTime reporting of some APIs caused a very large difference between Task Manager's Utility reported and the legacy Usage.. During this time, Alex (the author of MSI Afterburner and RTSS) found out that there's an alternate API available to determine IdleTime and when this is combined with the remaining legacy API, the results are much closer to CPU Utility reported by Task Manager. So they switched to this method, which IMO gave results somewhat between the legacy values and the "new" Utility.. But I'm not convinced that this method gives reliable data in all cases and types of load.
HWiNFO applied this "patched" method a couple of versions back, so the CPU Usage reported was somewhat closer to Utility but not same. This however caused loss of the legacy time-based usage which was preferred by some users which still believed this is the right usage. So in v 7.43 and later, this patch was reverted back to show two distinct points of view - fully legacy time-based usage and the "new" CPU utility value.
 
Maybe add checkbox to use right method but also option to use method that more reflects task manager even if less accurate cant manually tweak or adjust cos then the usage will not match around idle or will not much at all anymore at lower or higher values, must be a pain to fix.
 
Thank you so much for the insight! It made things very much clearer for me now. Maybe you have explained this elsewhere, but if I may, I'd just like to understand why this fully legitimate legacy time-based usage, now applied to v7.44, still presents such low values. Are they the correct ones on a time-based perspective? Or are they still being affected by those undocumented API changes that first messed with IdleTime?
 
Hi people and Martin!

The problems of MS Task Manager and CPU usage are known and extreme buggy, almost never exact correct and often extreme wrong. Sadly lately also MSI Afterburner joined the bad train, became even useless for many machines. The reasons are multiple, but mostly because based of .NET and already inside of a shell. Mine home for example always 100% CPU usage tho totally idle & cold, simply because installed a VM without running at all and enabled Hyper-V.
But a few alternatives and better Task Managers luckily still display correctly. For example the well known Process Explorer (MS SysInternals), System Informer and also CoreTemp. And then you can see the true loads!

So... Better forget fast the normal MS Task Manager, almost never correct and even the process loads are far of reality.
 
Last edited:
I think I already explained why v7.44 reverted the Usage back. IMO the value reported by MSI Afterburner (legacy + patch for IdleTime) is something in between the legacy and the "new" utility. It's something that comes closer to Task Manager but it's neither of those two metrics and hence might not represent a real metric.
For those who want to read and learn more about the differences see here (also check the subsequent links):
 
I also tested it right now and running Cyberpunk 2077. Before I always had 100% with or without Cyberpunk, but now totally correct again with v7.44:

Clipboard01.jpg
 
Maybe i am imaging stuff but if seen some games report correct some do not, one example is world of warcraft which does not even report correctly in details tab in task manager from windows 11 22h2 the game has deadlock issue resource conflict as many Blizzard tittles one of the only games that can freeze up my gpu driver and break gpu timeout on both my 6900 XT and 7900 XTX
I guess Windows 11 is mostly to blame for inaccurate reading
 
Maybe i am imaging stuff but if seen some games report correct some do not, one example is world of warcraft which does not even report correctly in details tab in task manager from windows 11 22h2 the game has deadlock issue resource conflict as many Blizzard tittles one of the only games that can freeze up my gpu driver and break gpu timeout on both my 6900 XT and 7900 XTX
I guess Windows 11 is mostly to blame for inaccurate reading

W11 made it even double buggy & wrong. But the Task Manager problem started already in early W10 and was never fixed.
 
About CPU utility:
I think they simply use the base clock and believe that CPUs would run only percentages (as laptop CPUs), tho a full desktop CPU only ever goes down to the base clock when cooling system is damaged. Because of that I always get 115% or even more when idle. Ergo CPU utility is useless and even totally wrong when using for process loads. Plus confuses the normal users.
 
Well, I agree that the CPU Utility is a quite confusing metric as it takes the performance state/clock into account. Moreover it seems that this metric isn't working properly in certain scenarios.

Most users are probably used to understand the usage as the percentage of time spent busy, so the legacy time-based metric. But they are confused as they don't realize that Task Manager is showing something else and they believe that's the "correct" usage.

As an example - I used to run various BOINC tasks on CPU - one task per CPU core/thread. And I needed to scale this workload to leave a few CPU threads idle for other work. Setting up the number of tasks (each of them occupied 1 CPU thread with full load) that way was easy and could be very well verified using the time-based usage. The Usage numbers always matched the expected number of threads working (e.g. running 30 single-thread full-load tasks on a 32-core/thread system would always give 94% Usage) but the CPU Utility value was completely off and useless for this case.
 
Yes, they mix with clocks and thread loads too much. Try a better alternative like the trustable Process Explorer or the even better System Informer, they will never lie!
 
In other words - most people didn't realize that it's not the other tools that became broken, but the Task Manager that suddenly started to show a quite different metric.
 
Back
Top