All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.