[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <36e12dba-7580-4a9c-9fac-9e8d810e5a7c@default>
Date: Wed, 4 Nov 2009 16:45:04 -0800 (PST)
From: Dan Magenheimer <dan.magenheimer@...cle.com>
To: john stultz <johnstul@...ibm.com>
Cc: Avi Kivity <avi@...hat.com>, Jeremy Fitzhardinge <jeremy@...p.org>,
Glauber Costa <glommer@...hat.com>,
Jeremy Fitzhardinge <jeremy.fitzhardinge@...rix.com>,
kurt.hackel@...cle.com, the arch/x86 maintainers <x86@...nel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Glauber de Oliveira Costa <gcosta@...hat.com>,
Xen-devel <xen-devel@...ts.xensource.com>,
Keir Fraser <keir.fraser@...citrix.com>, zach.brown@...cle.com,
chris.mason@...cle.com, Ingo Molnar <mingo@...hat.com>
Subject: RE: [Xen-devel] Re: [PATCH 3/5] x86/pvclock: add vsyscall
implementation
> > Yes, possibly of interest. But does it work with CONFIG_NO_HZ?
> > (I'm expecting that over time NO_HZ will become widespread
> > for VM OS's, though interested in if you agree.)
>
> It should work, with CONFIG_NO_HZ, as soon as we come out of
> a long idle
> (likely due to a timer tick), the timekeeping code will accumulate all
> the skipped ticks.
>
> If we ever get to non-idle NOHZ, we'll need some extra work here
> (probably lazy accumulation done conditionally in the read path), but
> that's also true for filesystem timestamps.
OK, sounds good.
> > Also very interested in your thoughts about a variation
> > that returns something similar to a TSC_AUX to notify
> > caller that the underlying reference clock has/may have
> > changed.
>
> I haven't been following that closely. Personally, experience makes me
> skeptical of workarounds for unsynced TSCs. But I'm sure
> there's sharper
> folks out there that might make it work. The kernel just requires that
> it *really really* works, and not "mostly" works. :)
This is less a workaround for unsynced TSCs than it
is for VM migration (and maybe also time where a
VM is out-of-context or moved to a different pcpu)
though it could probably
be made to work on unsynced TSC boxes also.
Basically an application needing hi-res profiling
info would do:
nsec1 = clock_gettime2(MONOTONIC,&aux1);
(time passes)
nsec2 = clock_gettime2(MONOTONIC,&aux2);
if (aux1 != aux2)
discard_measurement();
else
use_measurement(nsec2-nsec1);
and system software (hypervisor or kernel or
both) is responsible for ensuring aux value
monotonically increases whenever a different
crystal is used.
Without something like this as a vsyscall,
apps will just use rdtscp (which must be emulated
to work properly across a migration).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists