[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150218133524.GU5029@twins.programming.kicks-ass.net>
Date: Wed, 18 Feb 2015 14:35:24 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi@....com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"mingo@...nel.org" <mingo@...nel.org>,
"rjw@...ysocki.net" <rjw@...ysocki.net>,
"tglx@...utronix.de" <tglx@...utronix.de>,
Nicolas Pitre <nico@...aro.org>,
Russell King <rmk+kernel@....linux.org.uk>
Subject: Re: [PATCH 34/35] tick: Provide tick_suspend_local()
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@...utronix.de>
> >
> > 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?
---
--- 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists