All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: tglx@linutronix.de
Cc: linaro-kernel@lists.linaro.org, linux-kernel@vger.kernel.org,
	fweisbec@gmail.com, Arvind.Chauhan@arm.com,
	linaro-networking@linaro.org,
	Viresh Kumar <viresh.kumar@linaro.org>
Subject: [PATCH 29/38] tick-sched: remove wrapper around __tick_nohz_task_switch()
Date: Mon, 14 Apr 2014 21:53:51 +0530	[thread overview]
Message-ID: <b38dda39bf6cd18df5fab86f7c7cc86a6979786f.1397492345.git.viresh.kumar@linaro.org> (raw)
In-Reply-To: <cover.1397492345.git.viresh.kumar@linaro.org>
In-Reply-To: <cover.1397492345.git.viresh.kumar@linaro.org>

__tick_nohz_task_switch() was called only from tick_nohz_task_switch() and there
is nothing much in tick_nohz_task_switch() as well. IOW, we don't need
unnecessary wrapper over __tick_nohz_task_switch() to be there. Merge all code
from __tick_nohz_task_switch() into tick_nohz_task_switch() and move it to
tick-sched.c.

This also moves check for tick_nohz_tick_stopped() outside of irq_save()
context.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 include/linux/tick.h     | 11 ++---------
 kernel/time/tick-sched.c |  7 +++++--
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/include/linux/tick.h b/include/linux/tick.h
index 1065a51..585be84 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -201,7 +201,7 @@ extern void tick_nohz_init(void);
 extern void __tick_nohz_full_check(void);
 extern void tick_nohz_full_kick(void);
 extern void tick_nohz_full_kick_all(void);
-extern void __tick_nohz_task_switch(void);
+extern void tick_nohz_task_switch(void);
 #else
 static inline void tick_nohz_init(void) { }
 static inline bool tick_nohz_full_enabled(void) { return false; }
@@ -209,7 +209,7 @@ static inline bool tick_nohz_full_cpu(int cpu) { return false; }
 static inline void __tick_nohz_full_check(void) { }
 static inline void tick_nohz_full_kick(void) { }
 static inline void tick_nohz_full_kick_all(void) { }
-static inline void __tick_nohz_task_switch(void) { }
+static inline void tick_nohz_task_switch(void) { }
 #endif
 
 static inline void tick_nohz_full_check(void)
@@ -218,11 +218,4 @@ static inline void tick_nohz_full_check(void)
 		__tick_nohz_full_check();
 }
 
-static inline void tick_nohz_task_switch(void)
-{
-	if (tick_nohz_full_enabled())
-		__tick_nohz_task_switch();
-}
-
-
 #endif
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 5f7796d..d8b9a69 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -266,13 +266,16 @@ void tick_nohz_full_kick_all(void)
  * It might need the tick due to per task/process properties:
  * perf events, posix cpu timers, ...
  */
-void __tick_nohz_task_switch(void)
+void tick_nohz_task_switch(void)
 {
 	unsigned long flags;
 
+	if (!tick_nohz_full_enabled() || !tick_nohz_tick_stopped())
+		return;
+
 	local_irq_save(flags);
 
-	if (tick_nohz_tick_stopped() && !can_stop_full_tick())
+	if (!can_stop_full_tick())
 		tick_nohz_full_kick();
 
 	local_irq_restore(flags);
-- 
1.7.12.rc2.18.g61b472e


  parent reply	other threads:[~2014-04-14 16:27 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-14 16:23 [PATCH 00/38] tick cleanups and bugfixes Viresh Kumar
2014-04-14 16:23 ` [PATCH 01/38] tick: align to Coding Guidelines Viresh Kumar
2014-04-14 16:23 ` [PATCH 02/38] tick: update doc comments for struct tick_sched Viresh Kumar
2014-04-14 16:23 ` [PATCH 03/38] tick: rearrange members of 'struct tick_sched' Viresh Kumar
2014-04-14 16:23 ` [PATCH 04/38] tick: move declaration of tick_cpu_device to tick.h Viresh Kumar
2014-04-14 16:23 ` [PATCH 05/38] tick: move definition of tick_get_device() " Viresh Kumar
2014-04-14 16:23 ` [PATCH 06/38] tick: create tick_get_cpu_device() to get tick_cpu_device on this cpu Viresh Kumar
2014-04-14 16:23 ` [PATCH 07/38] tick-oneshot: drop local_irq_save/restore from tick_switch_to_oneshot() Viresh Kumar
2014-04-14 16:23 ` [PATCH 08/38] tick-oneshot: move tick_is_oneshot_available() to tick-oneshot.c Viresh Kumar
2014-04-14 16:23 ` [PATCH 09/38] tick-oneshot: remove tick_resume_oneshot() Viresh Kumar
2014-04-14 16:23 ` [PATCH 10/38] tick-common: remove extra checks from tick_check_new_device() Viresh Kumar
2014-04-14 16:23 ` [PATCH 11/38] tick-common: fix wrong check in tick_check_replacement() Viresh Kumar
2014-04-14 16:23 ` [PATCH 12/38] tick-common: call tick_check_percpu() from tick_check_preferred() Viresh Kumar
2014-04-14 16:23 ` [PATCH 13/38] tick-common: don't check tick_oneshot_mode_active() " Viresh Kumar
2014-04-14 16:23 ` [PATCH 14/38] tick-common: do additional checks in tick_check_preferred() Viresh Kumar
2014-04-14 16:23 ` [PATCH 15/38] tick-common: remove tick_check_replacement() Viresh Kumar
2014-04-14 16:23 ` [PATCH 16/38] tick-common: don't pass cpumask to tick_setup_device() Viresh Kumar
2014-04-14 16:23 ` [PATCH 17/38] tick-common: call tick_install_replacement() from tick_check_new_device() Viresh Kumar
2014-04-14 16:23 ` [PATCH 18/38] tick-common: don't set mode to CLOCK_EVT_MODE_UNUSED in tick_shutdown() Viresh Kumar
2014-04-14 19:38   ` Stephen Boyd
2014-04-15  3:45     ` Viresh Kumar
2014-04-14 16:23 ` [PATCH 19/38] tick-common: remove local variable 'broadcast' from tick_resume() Viresh Kumar
2014-04-14 16:23 ` [PATCH 20/38] tick-sched: initialize 'cpu' while defining it in tick_nohz_full_setup() Viresh Kumar
2014-04-14 16:23 ` [PATCH 21/38] tick-sched: no need to rewrite '1' to tick_nohz_enabled Viresh Kumar
2014-04-14 16:23 ` [PATCH 22/38] tick-sched: no need to recheck cpu_online() in can_stop_idle_tick() Viresh Kumar
2014-04-14 19:52   ` Stephen Boyd
2014-04-15  3:55     ` Viresh Kumar
2014-04-14 16:23 ` [PATCH 23/38] tick-sched: invert parameter of tick_check_oneshot_change() Viresh Kumar
2014-04-14 16:23 ` [PATCH 24/38] tick-sched: don't check tick_nohz_full_cpu() in __tick_nohz_task_switch() Viresh Kumar
2014-04-14 23:08   ` Frederic Weisbecker
2014-04-14 16:23 ` [PATCH 25/38] tick-sched: don't call local_softirq_pending() thrice in can_stop_idle_tick() Viresh Kumar
2014-04-14 16:23 ` [PATCH 26/38] tick-sched: don't call update_wall_time() when delta is lesser than tick_period Viresh Kumar
2014-04-14 16:23 ` [PATCH 27/38] tick-sched: remove 'regs' parameter of tick_sched_handle() Viresh Kumar
2014-04-14 16:23 ` [PATCH 28/38] tick-sched: remove parameters to {__}tick_nohz_task_switch() routines Viresh Kumar
2014-04-14 23:14   ` Frederic Weisbecker
2014-04-14 16:23 ` Viresh Kumar [this message]
2014-04-14 23:22   ` [PATCH 29/38] tick-sched: remove wrapper around __tick_nohz_task_switch() Frederic Weisbecker
2014-04-15  4:45     ` Viresh Kumar
2014-04-15  9:13       ` Frederic Weisbecker
2014-04-15  9:53         ` Viresh Kumar
2014-04-15 12:44           ` Frederic Weisbecker
2014-04-16  5:43             ` Viresh Kumar
2014-04-14 16:23 ` [PATCH 30/38] tick-sched: move nohz_full_buf[] inside tick_nohz_init() Viresh Kumar
2014-04-14 23:28   ` Frederic Weisbecker
2014-04-15  4:01     ` Viresh Kumar
2014-04-14 16:23 ` [PATCH 31/38] tick-sched: initialize 'ts' during its definition __tick_nohz_idle_enter() Viresh Kumar
2014-04-14 16:23 ` [PATCH 32/38] tick-sched: add comment about 'idle_active' in tick_nohz_idle_exit() Viresh Kumar
2014-04-14 16:23 ` [PATCH 34/38] tick-sched: remove local variable 'now' from tick_setup_sched_timer() Viresh Kumar
2014-04-14 16:23 ` [PATCH 35/38] tick-broadcast: do checks before taking locks in tick_do_broadcast_on_off() Viresh Kumar
2014-04-14 16:23 ` [PATCH 36/38] tick-broadcast: get rid of extra comparison " Viresh Kumar
2014-04-14 16:23 ` [PATCH 37/38] tick-broadcast: merge tick_do_broadcast_on_off() into tick_broadcast_on_off() Viresh Kumar
2014-04-14 16:24 ` [PATCH 38/38] clockevents: set event_handler to clockevents_handle_noop() in clockevents_exchange_device() Viresh Kumar
2014-04-14 23:38 ` [PATCH 00/38] tick cleanups and bugfixes Thomas Gleixner
2014-04-15  4:28   ` Viresh Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b38dda39bf6cd18df5fab86f7c7cc86a6979786f.1397492345.git.viresh.kumar@linaro.org \
    --to=viresh.kumar@linaro.org \
    --cc=Arvind.Chauhan@arm.com \
    --cc=fweisbec@gmail.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linaro-networking@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.