lkml.org 
[lkml]   [2013]   [Jun]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/4] hrtimers: provide a hrtimers_late_resume() call
On Thu, 20 Jun 2013, David Vrabel wrote:
> From: David Vrabel <david.vrabel@citrix.com>
>
> Xen suspends (and resumes) without disabling non-boot CPUs as doing so
> adds considerable delay to live migrations. A 4 VCPU guest had more
> than 200 ms of additional downtime if disable_nonboot_cpus() was
> called prior to suspending.
>
> As a consequence, only high resolution timers on the current CPU are
> retriggered when resuming. The Xen resume path worked around this
> with a call to clock_was_set() to retrigger timers on all the CPUs.
>
> A subsequent change will make clock_was_set() internal to hrtimers so
> add an new call (hrtimers_late_resume()) to do the same job.
>
> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> ---
> drivers/xen/manage.c | 8 ++++++--
> include/linux/hrtimer.h | 1 +
> kernel/hrtimer.c | 9 +++++++++
> 3 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
> index 412b96c..75bc2d5 100644
> --- a/drivers/xen/manage.c
> +++ b/drivers/xen/manage.c
> @@ -166,8 +166,12 @@ out_resume:
>
> dpm_resume_end(si.cancelled ? PMSG_THAW : PMSG_RESTORE);
>
> - /* Make sure timer events get retriggered on all CPUs */
> - clock_was_set();
> + /*
> + * syscore_resume() ends up calling hrtimer_resume() but this
> + * only retriggers timer events on the current CPU. We need
> + * to retrigger the events on all the other CPUS.
> + */
> + hrtimers_late_resume();

This is the completely wrong approach. If an architecture does not
shut down the non boot cpus on suspend, then this wants to be handled
in the core code and not in some random arch specific driver.

Thanks,

tglx


\
 
 \ /
  Last update: 2013-06-21 10:41    [W:0.123 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site