Re: [PATCH 8/9] clocksource: Improve unstable clocksource detection

From: Shaohua Li
Date: Mon Aug 31 2015 - 18:40:43 EST


On Mon, Aug 31, 2015 at 11:47:52PM +0200, Thomas Gleixner wrote:
> On Mon, 31 Aug 2015, Shaohua Li wrote:
> > > The HPET wraps interval is 0xffffffff / 100000000 = 42.9s
> > >
> > > tsc interval is (0x481250b45b - 0x219e6efb50) / 2200000000 = 75s
> > >
> > > 32.1 + 42.9 = 75
> > >
> > > The example shows hpet wraps, while tsc is marked unstable
> >
> > Thomas & John,
> > Is this data enough to prove TSC unstable issue can be triggered by HPET
> > wrap? I can resend the patch with the data included.
>
> Well, it's enough data to prove:
>
> - that keeping a VM off the CPU for 75 seconds is insane.

It wraps in 42.9s. 42.9s isn't a long time hard to block. I donât think
it's just VM off. A softirq can hog the cpu.

> - that emulating the HPET with 100MHz shortens the HPET wraparound by
> a factor of 7 compared to real hardware. With a realist HPET
> frequency you have about 300 seconds.
>
> Who though that using 100MHz HPET frequency is a brilliant idea?

I'm not a VM expert. My guess is the 100Mhz can reduce interrupt. Itâs
insane hypervisor updates HPET count in 14.3Mhz. Switching to HPET can
introduce even higher overhead in virtual, because of the vmexit of
iomemory access

> So we should add crappy heuristics to the watchdog just to workaround
> virt insanities? I'm not convinced.

This is a real issue which could impact performance seriously. Though
the data is collected in vm, we do see the issue happens in physical
machines too. The watchdog clock source shows restriction here
apparently, it deserves an improvement if we can do. I'm happy to hear
from you if there is better solution, but we shouldn't pretend there is
no issue here.

Thanks,
Shaohua
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/