On Thu, Mar 26, 2020 at 08:44:13PM +0000, Andrew Doran wrote: > It's a software problem right now. The ACPI idle loop doesn't currenly > enter a low power sleep state because there are issues with interrupts to > solve first. Nevertheless it's very heavy on I/O port access, takes locks > and under certain conditions flushes the entire L1/L2/L3 cache (I haven't > verified that yet but the cache miss rate observed with tprof(8) is very > high).
None of above is really true. Well, true, it takes a lock, but I doubt whether locking explains the numbers you are seeing. Because C3 states are not currently used, the other things do not happen. Flushing the caches (when entering/leaving C3) happens only with old CPUs, which certainly is not the case with these benchmarks. The same goes with I/O access. To gain more insights, I'd just commment out acpi_cpu::acpicpu_cstate_attach. It could be, for instance, that you are getting interrupts because of thermal issues (a.k.a. T-states), which, in turn, is a sign that you shouldn't be hitting your CPU so hard. - Jukka
