mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 11:19:37 +00:00
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 <tony@bakeyournoodle.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
ebac52524d
commit
05aa026a62
1 changed files with 2 additions and 3 deletions
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue