Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=05aa026a62d0fe0b4664a01d1537984b12567e7c Commit: 05aa026a62d0fe0b4664a01d1537984b12567e7c Parent: ebac52524df31e7c2fe13ca5bd3438907842f763 Author: Tony Breeds <[EMAIL PROTECTED]> AuthorDate: Mon Oct 22 10:56:25 2007 +1000 Committer: Rusty Russell <[EMAIL PROTECTED]> CommitDate: Tue Oct 23 15:49:49 2007 +1000
Clocksource is continuous regardless of the state of the host's TSC. Currently lguest will spend a lot of of time waking up the host, as it cannot go tickless (if the [host] TSC has been marked unstable). On my laptop I was getting ~40% of wakeups from lguest. With this patch applied, my laptop is much happier! Signed-off-by: Tony Breeds <[EMAIL PROTECTED]> Signed-off-by: Rusty Russell <[EMAIL PROTECTED]> --- drivers/lguest/lguest.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/lguest/lguest.c b/drivers/lguest/lguest.c index c9ca610..8e9e485 100644 --- a/drivers/lguest/lguest.c +++ b/drivers/lguest/lguest.c @@ -679,6 +679,7 @@ static struct clocksource lguest_clock = { .mask = CLOCKSOURCE_MASK(64), .mult = 1 << 22, .shift = 22, + .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; /* The "scheduler clock" is just our real clock, adjusted to start at zero */ @@ -760,11 +761,9 @@ static void lguest_time_init(void) * the TSC, otherwise it's a dumb nanosecond-resolution clock. Either * way, the "rating" is initialized so high that it's always chosen * over any other clocksource. */ - if (lguest_data.tsc_khz) { + if (lguest_data.tsc_khz) lguest_clock.mult = clocksource_khz2mult(lguest_data.tsc_khz, lguest_clock.shift); - lguest_clock.flags = CLOCK_SOURCE_IS_CONTINUOUS; - } clock_base = lguest_clock_read(); clocksource_register(&lguest_clock); - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html