[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.2] x86/hvm: reset TSC to 0 after domain resume from S3
commit cbb45ac29ff24222b80209e580e01677315f8101 Author: Tomasz Wroblewski <tomasz.wroblewski@xxxxxxxxxx> AuthorDate: Mon Dec 2 15:54:42 2013 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Dec 2 15:54:42 2013 +0100 x86/hvm: reset TSC to 0 after domain resume from S3 Host S3 implicitly resets the host TSC to 0, but the tsc offset for hvm domains is not recalculated when they resume, causing it to go into negative values. In Linux guest using tsc clocksource, this results in a hang after wrap back to positive values since the tsc clocksource implementation expects it reset. Signed-off-by: Tomasz Wroblewski <tomasz.wroblewski@xxxxxxxxxx> master commit: e95dc6ba69daef6468b3ae5912710727244d6e2f master date: 2013-11-22 14:47:24 +0100 --- xen/arch/x86/hvm/hvm.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 28824b7..6ab812d 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -3558,7 +3558,13 @@ static void hvm_s3_suspend(struct domain *d) static void hvm_s3_resume(struct domain *d) { if ( test_and_clear_bool(d->arch.hvm_domain.is_s3_suspended) ) + { + struct vcpu *v; + + for_each_vcpu( d, v ) + hvm_set_guest_tsc(v, 0); domain_unpause(d); + } } static int hvmop_set_isa_irq_level( -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.2 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |