Re: [PATCH 08/09] tick/xen: Provide and use tick_suspend_local() and tick_resume_local()
From: Rafael J. Wysocki
Date: Wed Mar 25 2015 - 16:33:22 EST
On Wednesday, March 25, 2015 04:13:09 PM Konrad Rzeszutek Wilk wrote:
> On Wed, Mar 25, 2015 at 01:11:04PM +0100, Rafael J. Wysocki wrote:
> > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> >
> > Xen calls on every cpu into tick_resume() which is just wrong.
> > tick_resume() is for the syscore global suspend/resume invocation.
> > What XEN really wants is a per cpu local resume function.
> >
> > Provide a tick_resume_local() function and use it in XEN.
> >
> > Also provide a complementary tick_suspend_local() and modify
> > tick_unfreeze() and tick_freeze(), respectively, to use the
> > new local tick resume/suspend functions.
> >
> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> > Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
> > Cc: David Vrabel <david.vrabel@xxxxxxxxxx>
> > [ rjw: Combined two patches, rebased, modified subject/changelog ]
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > ---
> > arch/x86/xen/suspend.c | 2 -
> > include/linux/tick.h | 6 ++--
> > kernel/time/tick-broadcast.c | 24 ++++++++++++------
> > kernel/time/tick-common.c | 57 +++++++++++++++++++++++++++++--------------
> > kernel/time/tick-internal.h | 8 ++++--
> > 5 files changed, 66 insertions(+), 31 deletions(-)
> >
> > Index: linux-pm/arch/x86/xen/suspend.c
> > ===================================================================
> > --- linux-pm.orig/arch/x86/xen/suspend.c
> > +++ linux-pm/arch/x86/xen/suspend.c
> > @@ -85,7 +85,7 @@ static void xen_vcpu_notify_restore(void
> > if (smp_processor_id() == 0)
> > return;
> >
> > - tick_resume();
> > + tick_resume_local();
>
> I am looking at Linus's tree and I see:
>
> 82 static void xen_vcpu_notify_restore(void *data)
> 83 {
> 84 unsigned long reason = (unsigned long)data;
> 85
> 86 /* Boot processor notified via generic timekeeping_resume() */
> 87 if ( smp_processor_id() == 0)
> 88 return;
> 89
> 90 clockevents_notify(reason, NULL);
> 91 }
>
> So there must be another patch that altered the clockevents_notify?
Yes, there is. It is the [06/09] in this series
(https://patchwork.kernel.org/patch/6090631/).
I should have CCed it to you too, sorry about that.
> Is there an git tree with all of these patches?
Not yet, but they all are in the linux-pm patchwork at
https://patchwork.kernel.org/project/linux-pm/list/
I can create a branch in the linux-pm.git tree for them if that helps,
please let me know.
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/