Re: [PATCH] clockevents/drivers/i8253: Do not zero timer counter in shutdown
From: Thomas Gleixner <hidden>
Date: 2024-08-01 20:00:26
Also in:
lkml
On Thu, Aug 01 2024 at 20:21, David Woodhouse wrote:
On Thu, 2024-08-01 at 21:06 +0200, Thomas Gleixner wrote:quoted
Yes. So the sequence should stop KVM from trying to inject interrupts. Maybe someone fixes it to actually stop fiddling with the counter too :)I don't think we care about the counter value, as that's *calculated* on demand when the guest tries to read from it. Or, more to the point, *if* the guest tries to read from it. As opposed to the interrupt, which is a timer in the VMM which takes a CPU out of guest mode and incurs steal time, just to waggle a pin on the emulated PICs for no good reason.
Well, if the implementation still arms the timer in the background, then it matters because that has to be processed too. I haven't looked at that code at all, so what do I know.
quoted
quoted
I'm glad I decided to export a function from the clocksource driver and just *call* it from pit_timer_init() though. Means we can bikeshed the shutdown sequence in *one* place and it isn't duplicated.Right. Though we don't have to make this conditional on hypervisor I think.Right, we don't *have* to. I vacillated about that and almost ripped it out before sending the patch, but came down on the side of "hardware is a steaming pile of crap and if I don't *have* to change its behaviour, let's not touch it". I justify my cowardice on the basis that it doesn't *matter* if a hardware implementation is still toggling the IRQ pin; in that case it's only a few irrelevant transistors which are busy, and it doesn't translate to steal time.
On real hardware it translates to power...
Thanks,
tglx