* [PATCH 1/2] Export the symbol of getboottime and monotonic_to_bootbased
@ 2010-01-27 11:13 Jason Wang
2010-01-27 11:13 ` [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock Jason Wang
0 siblings, 1 reply; 4+ messages in thread
From: Jason Wang @ 2010-01-27 11:13 UTC (permalink / raw)
To: mtosatti, avi; +Cc: glommer, kvm
Export getboottime and monotonic_to_bootbased in order to let them
could be used by following patch.
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
kernel/time/timekeeping.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 7faaa32..e2ab064 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -880,6 +880,7 @@ void getboottime(struct timespec *ts)
set_normalized_timespec(ts, -boottime.tv_sec, -boottime.tv_nsec);
}
+EXPORT_SYMBOL_GPL(getboottime);
/**
* monotonic_to_bootbased - Convert the monotonic time to boot based.
@@ -889,6 +890,7 @@ void monotonic_to_bootbased(struct timespec *ts)
{
*ts = timespec_add_safe(*ts, total_sleep_time);
}
+EXPORT_SYMBOL_GPL(monotonic_to_bootbased);
unsigned long get_seconds(void)
{
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock
2010-01-27 11:13 [PATCH 1/2] Export the symbol of getboottime and monotonic_to_bootbased Jason Wang
@ 2010-01-27 11:13 ` Jason Wang
2010-01-27 12:27 ` Glauber Costa
2010-01-27 22:22 ` Marcelo Tosatti
0 siblings, 2 replies; 4+ messages in thread
From: Jason Wang @ 2010-01-27 11:13 UTC (permalink / raw)
To: mtosatti, avi; +Cc: glommer, kvm
Current kvm wallclock does not consider the total_sleep_time which could cause
wrong wallclock in guest after host suspend/resume. This patch solve
this issue by counting total_sleep_time to get the correct host boot time.
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
arch/x86/kvm/x86.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ac8672f..d47ceda 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -723,7 +723,7 @@ static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock)
{
static int version;
struct pvclock_wall_clock wc;
- struct timespec now, sys, boot;
+ struct timespec boot;
if (!wall_clock)
return;
@@ -738,9 +738,7 @@ static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock)
* wall clock specified here. guest system time equals host
* system time for us, thus we must fill in host boot time here.
*/
- now = current_kernel_time();
- ktime_get_ts(&sys);
- boot = ns_to_timespec(timespec_to_ns(&now) - timespec_to_ns(&sys));
+ getboottime(&boot);
wc.sec = boot.tv_sec;
wc.nsec = boot.tv_nsec;
@@ -815,6 +813,7 @@ static void kvm_write_guest_time(struct kvm_vcpu *v)
local_irq_save(flags);
kvm_get_msr(v, MSR_IA32_TSC, &vcpu->hv_clock.tsc_timestamp);
ktime_get_ts(&ts);
+ monotonic_to_bootbased(&ts);
local_irq_restore(flags);
/* With all the info we got, fill in the values */
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock
2010-01-27 11:13 ` [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock Jason Wang
@ 2010-01-27 12:27 ` Glauber Costa
2010-01-27 22:22 ` Marcelo Tosatti
1 sibling, 0 replies; 4+ messages in thread
From: Glauber Costa @ 2010-01-27 12:27 UTC (permalink / raw)
To: Jason Wang; +Cc: mtosatti, avi, kvm
On Wed, Jan 27, 2010 at 07:13:49PM +0800, Jason Wang wrote:
> Current kvm wallclock does not consider the total_sleep_time which could cause
> wrong wallclock in guest after host suspend/resume. This patch solve
> this issue by counting total_sleep_time to get the correct host boot time.
>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
This makes sense to me.
Acked-by: Glauber Costa <glommer@redhat.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock
2010-01-27 11:13 ` [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock Jason Wang
2010-01-27 12:27 ` Glauber Costa
@ 2010-01-27 22:22 ` Marcelo Tosatti
1 sibling, 0 replies; 4+ messages in thread
From: Marcelo Tosatti @ 2010-01-27 22:22 UTC (permalink / raw)
To: Jason Wang; +Cc: avi, glommer, kvm
On Wed, Jan 27, 2010 at 07:13:49PM +0800, Jason Wang wrote:
> Current kvm wallclock does not consider the total_sleep_time which could cause
> wrong wallclock in guest after host suspend/resume. This patch solve
> this issue by counting total_sleep_time to get the correct host boot time.
>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
Applied and queued for -stable, thanks.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-01-27 22:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-27 11:13 [PATCH 1/2] Export the symbol of getboottime and monotonic_to_bootbased Jason Wang
2010-01-27 11:13 ` [PATCH 2/2] kvmclock: count total_sleep_time when updating guest clock Jason Wang
2010-01-27 12:27 ` Glauber Costa
2010-01-27 22:22 ` Marcelo Tosatti
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.