Re: [PATCH 34/35] tick: Provide tick_suspend_local()
From: Lorenzo Pieralisi
Date: Wed Feb 18 2015 - 11:38:15 EST
On Wed, Feb 18, 2015 at 01:35:24PM +0000, Peter Zijlstra wrote:
> On Tue, Feb 17, 2015 at 02:31:42PM +0000, Lorenzo Pieralisi wrote:
> > On Mon, Feb 16, 2015 at 12:15:09PM +0000, Peter Zijlstra wrote:
> > > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > >
> > > This function is intended to use by the freezer once the freezer folks
> > > solved their race issues. Also required to get rid of the ARM BL
> > > switcher tick hackery.
> >
> > Totally agree with the patch(es), but I noticed that the ARM bL switcher
> > does not depend on PM_SLEEP, so I do not think you can compile
> > tick_{suspend/resume}_local() out if !PM_SLEEP, unless dependency
> > is enforced by the ARM bL switcher config but I do not think that
> > the config dependency really exists, Nico please correct me if I am
> > wrong.
>
> Ah I see, the headers seem to do the right thing and declare the
> function in core (GENERIC_CLOCKEVENTS) with a comment.
>
> But then the patch continues defining the functions under PM_SLEEP.
>
> I wonder why the build robot has not reported fail on this..
>
> Would the below make sense?
Yes, but please see Rafael's remark, whatever makes it easier for you.
Thanks,
Lorenzo
>
> ---
> --- a/kernel/time/tick-common.c
> +++ b/kernel/time/tick-common.c
> @@ -368,7 +368,6 @@ void tick_shutdown_local(void)
> }
> #endif
>
> -#ifdef CONFIG_PM_SLEEP
> /**
> * tick_suspend_local - Suspend the local tick device
> *
> @@ -384,20 +383,6 @@ void tick_suspend_local(void)
> }
>
> /**
> - * tick_suspend - Suspend the tick and the broadcast device
> - *
> - * Called from syscore_suspend() via timekeeping_suspend with only one
> - * CPU online and interrupts disabled.
> - *
> - * No locks required. Nothing can change the per cpu device.
> - */
> -void tick_suspend(void)
> -{
> - tick_suspend_local();
> - tick_suspend_broadcast();
> -}
> -
> -/**
> * tick_resume_local - Resume the local tick device
> *
> * Called from the local cpu for unfreeze or XEN resume magic
> @@ -418,6 +403,21 @@ void tick_resume_local(void)
> }
> }
>
> +#ifdef CONFIG_PM_SLEEP
> +/**
> + * tick_suspend - Suspend the tick and the broadcast device
> + *
> + * Called from syscore_suspend() via timekeeping_suspend with only one
> + * CPU online and interrupts disabled.
> + *
> + * No locks required. Nothing can change the per cpu device.
> + */
> +void tick_suspend(void)
> +{
> + tick_suspend_local();
> + tick_suspend_broadcast();
> +}
> +
> /**
> * tick_resume - Resume the tick and the broadcast device
> *
>
--
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/