[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 for 4.5] x86/viridian: Freeze time reference counter when domain is paused
>>> On 16.10.14 at 11:21, <paul.durrant@xxxxxxxxxx> wrote: > In XenServer system test it has become apparent that versions of Windows > that make use of the time reference counter enlightenment cannot cope with > large jumps forward in the value read from the MSR. Specifically, > suspending a very large domain took approx. 45 minutes to complete and > when the domain was resumed it was discovered that the WMI (Windows > Management Instrumentation) service had hung. > > The reason a large jump forward is seen by the guest is that, when a guest > is suspended, the guest stops running when the SCHEDOP_suspend hypercall is > made, however the MSR value essentially keeps incrementing until the > tool-stack issues DOMCTL_gethvmcontext. > > This patch adds code to freeze the value of the time reference counter > on domain pause and 'thaw' it on domain unpause, but only thaw it if the > domain is not shutting down. The absolute value of the counter is then > saved in the viridian domain context record. This prevents the guest OS > from experiencing large jumps in the value of the MSR and has been shown > to reliably fix the problem with WMI. > > Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx> ARM maintainers: I was about to commit this patch when I noticed that there still was no ack from any of you for this (trivial) addition: > --- a/xen/arch/arm/domain.c > +++ b/xen/arch/arm/domain.c > @@ -580,6 +580,18 @@ void arch_domain_destroy(struct domain *d) > free_xenheap_page(d->shared_info); > } > > +void arch_domain_shutdown(struct domain *d) > +{ > +} > + > +void arch_domain_pause(struct domain *d) > +{ > +} > + > +void arch_domain_unpause(struct domain *d) > +{ > +} > + > static int is_guest_pv32_psr(uint32_t psr) > { > switch (psr & PSR_MODE_MASK) Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |