All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Eero Nurkkala <ext-eero.nurkkala@nokia.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
	venkatesh.pallipadi@intel.com, riel@redhat.com,
	tero.kristo@nokia.com, ext-eero.nurkkala@nokia.com,
	tglx@linutronix.de
Subject: [tip:timers/urgent] NOHZ: Properly feed cpufreq ondemand governor
Date: Wed, 27 May 2009 12:54:31 GMT	[thread overview]
Message-ID: <tip-cf1240033cc81216a18eec0ca71466f7fe4eeda8@git.kernel.org> (raw)
In-Reply-To: <12432346571351-git-send-email-ext-eero.nurkkala@nokia.com>

Commit-ID:  cf1240033cc81216a18eec0ca71466f7fe4eeda8
Gitweb:     http://git.kernel.org/tip/cf1240033cc81216a18eec0ca71466f7fe4eeda8
Author:     Eero Nurkkala <ext-eero.nurkkala@nokia.com>
AuthorDate: Mon, 25 May 2009 09:57:37 +0300
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Wed, 27 May 2009 14:51:47 +0200

NOHZ: Properly feed cpufreq ondemand governor

A call from irq_exit() may occasionally pause the timing
info for cpufreq ondemand governor. This results in the
cpufreq ondemand governor to fail to calculate the
system load properly. Thus, relocate the checks for this
particular case to keep the governor always functional.

Signed-off-by: Eero Nurkkala <ext-eero.nurkkala@nokia.com>
Reported-by: Tero Kristo <tero.kristo@nokia.com>
Acked-by: Rik van Riel <riel@redhat.com>
Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
LKML-Reference: <12432346571351-git-send-email-ext-eero.nurkkala@nokia.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>


---
 kernel/time/tick-sched.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index d3f1ef4..233b4e7 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -222,6 +222,15 @@ void tick_nohz_stop_sched_tick(int inidle)
 
 	cpu = smp_processor_id();
 	ts = &per_cpu(tick_cpu_sched, cpu);
+
+	/*
+	 * Call to tick_nohz_start_idle stops the last_update_time from being
+	 * updated. Thus, it must not be called in the event we are called from
+	 * irq_exit() with the prior state different than idle.
+	 */
+	if (!inidle && !ts->inidle)
+		return;
+
 	now = tick_nohz_start_idle(ts);
 
 	/*
@@ -239,9 +248,6 @@ void tick_nohz_stop_sched_tick(int inidle)
 	if (unlikely(ts->nohz_mode == NOHZ_MODE_INACTIVE))
 		goto end;
 
-	if (!inidle && !ts->inidle)
-		goto end;
-
 	ts->inidle = 1;
 
 	if (need_resched())

  parent reply	other threads:[~2009-05-27 12:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-25  6:57 [PATCH] NOHZ: Properly feed cpufreq ondemand governor ext-eero.nurkkala
2009-05-26 15:17 ` Rik van Riel
2009-05-26 17:47   ` Pallipadi, Venkatesh
2009-05-27 11:57 ` [tip:timers/urgent] " tip-bot for Eero Nurkkala
2009-05-27 12:18   ` Eero Nurkkala
2009-05-27 12:49     ` Thomas Gleixner
2009-05-27 12:54 ` tip-bot for Eero Nurkkala [this message]
2009-05-27 13:23   ` Rik van Riel
2009-05-27 13:33     ` Thomas Gleixner

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=tip-cf1240033cc81216a18eec0ca71466f7fe4eeda8@git.kernel.org \
    --to=ext-eero.nurkkala@nokia.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=riel@redhat.com \
    --cc=tero.kristo@nokia.com \
    --cc=tglx@linutronix.de \
    --cc=venkatesh.pallipadi@intel.com \
    /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.