lkml.org 
[lkml]   [2009]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[092/151] xen: call clock resume notifier on all CPUs
    2.6.32-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Ian Campbell <Ian.Campbell@citrix.com>

    commit f6eafe3665bcc374c66775d58312d1c06c55303f upstream.

    tick_resume() is never called on secondary processors. Presumably this
    is because they are offlined for suspend on native and so this is
    normally taken care of in the CPU onlining path. Under Xen we keep all
    CPUs online over a suspend.

    This patch papers over the issue for me but I will investigate a more
    generic, less hacky, way of doing to the same.

    tick_suspend is also only called on the boot CPU which I presume should
    be fixed too.

    Signed-off-by: Ian Campbell <Ian.Campbell@citrix.com>
    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/xen/suspend.c | 15 ++++++++++++++-
    1 file changed, 14 insertions(+), 1 deletion(-)

    --- a/arch/x86/xen/suspend.c
    +++ b/arch/x86/xen/suspend.c
    @@ -1,4 +1,5 @@
    #include <linux/types.h>
    +#include <linux/clockchips.h>

    #include <xen/interface/xen.h>
    #include <xen/grant_table.h>
    @@ -46,7 +47,19 @@ void xen_post_suspend(int suspend_cancel

    }

    +static void xen_vcpu_notify_restore(void *data)
    +{
    + unsigned long reason = (unsigned long)data;
    +
    + /* Boot processor notified via generic timekeeping_resume() */
    + if ( smp_processor_id() == 0)
    + return;
    +
    + clockevents_notify(reason, NULL);
    +}
    +
    void xen_arch_resume(void)
    {
    - /* nothing */
    + smp_call_function(xen_vcpu_notify_restore,
    + (void *)CLOCK_EVT_NOTIFY_RESUME, 1);
    }



    \
     
     \ /
      Last update: 2009-12-17 05:31    [W:0.020 / U:118.044 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site