> One of the functions of kernel_task is to help manage CPU temperature by making the CPU less available to processes that are using it intensely. In other words, kernel_task responds to conditions that cause your CPU to become too hot
If it's about CPU temperature, why does Apple schedule a task instead of just downclocking the CPU, like everyone else? This question predates the release of M1 Macbooks, and everyone else does thermal management of Intel Core processors via clock speed, not artificial idle load.
I'm not an expert, but I know are two forms of throttling under MacOS – the CPU frequency limit, and the "scheduling limit". The CPU reduces frequency under thermal stress just like other machines, but there's a minimum frequency that it can be downclocked to. So if that's not enough to meet the thermal envelope, the scheduler will additionally start to limit the amount of CPU time that can be used. I notice this in particular when the GPU is at full whack – such as running multiple external displays at high resolution with 3D graphics.
I've had my Mac mini throttle down to 180Mhz under Linux (due to incorrect ACPI settings), to the point where I could see the window elements being drawn :) So at least that generation Intel was capable of pretty extreme downclocking.
They almost certainly do adjust CPU frequency as well (although I don't have a 2020 Mac to check this). Lowering the frequency would mean fewer instructions can be processed per second which means you are more likely to see a higher CPU usage for all tasks. What you see is probably the combination of both of these effects.
It's annoying that the process monitor does not provide any way to distinguish high CPU load due to demand and high CPU load due to a low clock frequency but there is software that can display a CPU frequency chart which can give some insight:
The high cpu usage is essentially the evidence for running certain power-saving measures that "look" like the task is using a lot of CPU time (it does, sleeping the cpu).
There's similar behaviour on linux but it shows as specific kernel threads related to intel power throttling, so it's more obvious what's happening.
If it's about CPU temperature, why does Apple schedule a task instead of just downclocking the CPU, like everyone else? This question predates the release of M1 Macbooks, and everyone else does thermal management of Intel Core processors via clock speed, not artificial idle load.