On 11/19/2024 5:42 AM, Rafael J. Wysocki wrote:
On Mon, Nov 18, 2024 at 3:35 PM Arjan van de Ven <arjan@xxxxxxxxxxxxxxx> wrote:
And the argument seems to be that it is better to always use more
resources in a given path (ACPI sleep in this particular case) than to
be somewhat inaccurate which is visible in some cases.
This would mean that hrtimers should always be used everywhere, but they aren't.
more or less rule of thumb is that regular timers are optimized for not firing case
(e.g. timeouts that get deleted when the actual event happens) while hrtimers
are optimized for the case where the timer is expected to fire.
I've heard that, which makes me wonder why msleep() is still there.
One thing that's rarely mentioned is that programming a timer in HW
actually takes time, so if it is done too often, it hurts performance
through latency (even if this is the TSC deadline timer).
yup and this is why you want to group events together "somewhat", and which is why
we have slack, to allow that to happen
(I'm with you on the slack argument, some amount of slack, even if it is only a usec or two,
is very helpful)
Thanks!