Messages in this thread | | | Date | Wed, 14 Jan 2015 09:21:18 -0500 | From | Boris Ostrovsky <> | Subject | Re: [Xen-devel] [PATCH] xen-time: decreasing the rating of the xen clocksource below that of the tsc clocksource for dom0's |
| |
On 01/13/2015 11:33 AM, Boris Ostrovsky wrote: > On 01/13/2015 11:17 AM, Boris Ostrovsky wrote: >> On 01/13/2015 11:07 AM, David Vrabel wrote: >>> On 13/01/15 15:42, Boris Ostrovsky wrote: >>>> On 01/13/2015 04:52 AM, David Vrabel wrote: >>>>> On 13/01/15 08:14, Imre Palik wrote: >>>>>> From: "Palik, Imre" <imrep@amazon.de> >>>>>> >>>>>> In Dom0's the use of the TSC clocksource (whenever it is stable >>>>>> enough to >>>>>> be used) instead of the Xen clocksource should not cause any >>>>>> issues, as >>>>>> Dom0 VMs never live-migrated. The TSC clocksource is somewhat more >>>>>> efficient than the Xen paravirtualised clocksource, thus it >>>>>> should have >>>>>> higher rating. >>>>>> >>>>>> This patch decreases the rating of the Xen clocksource in Dom0s >>>>>> to 275. >>>>>> Which is half-way between the rating of the TSC clocksource (300) >>>>>> and >>>>>> the >>>>>> hpet clocksource (250). >>>>> I'm happy with this but would like to see acks from those who >>>>> objected >>>>> to v1. >>>>> >>>>> David >>>>> >>>>>> --- a/arch/x86/xen/time.c >>>>>> +++ b/arch/x86/xen/time.c >>>>>> @@ -487,6 +487,10 @@ static void __init xen_time_init(void) >>>>>> int cpu = smp_processor_id(); >>>>>> struct timespec tp; >>>>>> + /* As Dom0 is never moved, no penalty on using TSC there */ >>>> Again, why not any PV guest with TSC_MODE_NEVER_EMULATE? >>> Surely if TSC_MODE_NEVER_EMULATE is set then the TSC is /not/ stable >>> across a guest save/restore thus the PV clocksource must be used? >> >> TSC is declared stable when !d->disable_migrate && !d->arch.vtsc, >> with vtsc being 0 with TSC_MODE_NEVER_EMULATE (per domain_cpuid()). > > I think I inverted domain_cpuid's logic here but my point was that we > use'd use combination of TSC_MODE_NEVER_EMULATE and CPUID flag > indicating TSC stability to pick the clocksource. > > > -boris > >> >> And if TSC is not stable as seen by CPUID (which would be the case if >> disable_migrate is not set) then kernel won't use TSC as clocksource >> anyway, regardless of rating value, won't it?
So this is not going to work because early_init_intel() may set X86_FEATURE_CONSTANT_TSC unconditionally, without consulting CPUID.
Imre, you can ignore my question about non-dom0 guests then.
-boris
| |