Re: [PATCH 2/2] lguest: handle dodgy/non-existent TSC. Guest code.
From: Tony Breeds <hidden>
Date: 2007-07-04 06:44:02
On Wed, Jul 04, 2007 at 04:20:33PM +1000, Rusty Russell wrote:
We create an "lguest_clock" which the guest uses: either TSC or jiffies, depending on whether the host tells us the TSC frequency. Signed-off-by: Rusty Russell <redacted> --- drivers/lguest/lguest.c | 51 +++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 25 deletions(-) ===================================================================
Hi Rusty, <snip>
+static cycle_t lguest_clock_read(void)
+{
+ if (lguest_data.tsc_khz)
+ return native_read_tsc();
+ else
+ return jiffies;
+}
+
+/* This is what we tell the kernel is our clocksource. */<snip>
+ /* We use the TSC if the Host tells us we can, otherwise a dumb
+ * jiffies-based clock. */
+ if (lguest_data.tsc_khz) {
+ lguest_clock.shift = 22;
+ lguest_clock.mult = clocksource_khz2mult(lguest_data.tsc_khz,
+ lguest_clock.shift);
+ lguest_clock.mask = CLOCKSOURCE_MASK(64);
+ lguest_clock.flags = CLOCK_SOURCE_IS_CONTINUOUS;
+ } else {
+ /* To understand this, start at kernel/time/jiffies.c... */
+ lguest_clock.shift = 8;
+ lguest_clock.mult = (((u64)NSEC_PER_SEC<<8)/ACTHZ) << 8;
+ lguest_clock.mask = CLOCKSOURCE_MASK(32);
+ }
clocksource_register(&lguest_clock);Why bother installing an lguest_clock which is the same as jiffies? Wouldn't it be better to just use the system provided jiffies clocksource in the case where you haven't been provided with lguest_data.tsc_khz ? Yours Tony linux.conf.au http://linux.conf.au/ || http://lca2008.linux.org.au/ Jan 28 - Feb 02 2008 The Australian Linux Technical Conference!