linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Steve Muckle <smuckle.linux@gmail.com>,
	Saravana Kannan <skannan@codeaurora.org>,
	Rafael Wysocki <rjw@rjwysocki.net>,
	Ingo Molnar <mingo@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Lists linaro-kernel <linaro-kernel@lists.linaro.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Juri Lelli <Juri.Lelli@arm.com>,
	Robin Randhawa <robin.randhawa@arm.com>
Subject: Re: [PATCH 2/3] cpufreq: schedutil: move slow path from workqueue to SCHED_FIFO task
Date: Mon, 14 Nov 2016 12:06:09 +0530	[thread overview]
Message-ID: <20161114063609.GB4178@vireshk-i7> (raw)
In-Reply-To: <CAJZ5v0hGVq7SQE-m7Pi-WTv7f+OP=sFwAuzp08sFKAMBS2Mzyg@mail.gmail.com>

On 13-11-16, 23:44, Rafael J. Wysocki wrote:
> To a minimum, there should be a comment regarding that in the patches.

Wanted to get the comment written properly before sending that in the patch. Can
you please rectify this based on what you are looking for ?

diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
index c6bc60078e21..e43f4fd42fb4 100644
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -313,6 +313,20 @@ static void sugov_irq_work(struct irq_work *irq_work)
        struct sugov_policy *sg_policy;
 
        sg_policy = container_of(irq_work, struct sugov_policy, irq_work);
+
+       /*
+        * For Real Time and Deadline tasks, schedutil governor shoots the
+        * frequency to maximum. And special care must be taken to ensure that
+        * this kthread doesn't result in that.
+        *
+        * This is (mostly) guaranteed by the work_in_progress flag. The flag is
+        * updated only at the end of the sugov_work() and before that schedutil
+        * rejects all other frequency scaling requests.
+        *
+        * Though there is a very rare case where the RT thread yields right
+        * after the work_in_progress flag is cleared. The effects of that are
+        * neglected for now.
+        */
        kthread_queue_work(&sg_policy->worker, &sg_policy->work);
 }
 
> In any case, the clearing of work_in_progress might still be deferred
> by queuing a regular (non-RT) work item to do that from the kthread
> work (that will guarantee "hiding" the kthread work from the
> governor), but admittedly that would be a sledgehammer of sorts (and
> it might defeat the purpose of the whole exercise) ...

I agree.

-- 
viresh

  reply	other threads:[~2016-11-14  6:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-11 10:22 [PATCH 0/3] cpufreq: schedutil: move slow path from workqueue to SCHED_FIFO task Viresh Kumar
2016-11-11 10:22 ` [PATCH 1/3] cpufreq: schedutil: enable fast switch earlier Viresh Kumar
2016-11-11 14:19   ` Peter Zijlstra
2016-11-11 21:52     ` Rafael J. Wysocki
2016-11-11 22:55       ` Peter Zijlstra
2016-11-11 21:58   ` Rafael J. Wysocki
2016-11-12  5:19     ` Viresh Kumar
2016-11-13 14:46       ` Rafael J. Wysocki
2016-11-14  4:06         ` Viresh Kumar
2016-11-14 11:30           ` Viresh Kumar
2016-11-11 10:22 ` [PATCH 2/3] cpufreq: schedutil: move slow path from workqueue to SCHED_FIFO task Viresh Kumar
2016-11-11 14:32   ` Tommaso Cucinotta
2016-11-11 14:39     ` Peter Zijlstra
2016-11-12  5:22       ` Viresh Kumar
2016-11-14  9:22         ` Peter Zijlstra
2016-11-14 10:22           ` Viresh Kumar
2016-11-12  5:21     ` Viresh Kumar
2016-11-11 22:16   ` Rafael J. Wysocki
2016-11-12  1:31     ` Saravana Kannan
2016-11-12  5:27       ` Viresh Kumar
2016-11-14  5:37         ` Viresh Kumar
2016-11-13 14:37       ` Rafael J. Wysocki
2016-11-13 19:47         ` Steve Muckle
2016-11-13 22:44           ` Rafael J. Wysocki
2016-11-14  6:36             ` Viresh Kumar [this message]
2016-11-12  5:24     ` Viresh Kumar
2016-11-13 19:31     ` Steve Muckle
2016-11-11 10:22 ` [PATCH 3/3] cpufreq: schedutil: irq-work is used only in slow path 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=20161114063609.GB4178@vireshk-i7 \
    --to=viresh.kumar@linaro.org \
    --cc=Juri.Lelli@arm.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=robin.randhawa@arm.com \
    --cc=skannan@codeaurora.org \
    --cc=smuckle.linux@gmail.com \
    --cc=vincent.guittot@linaro.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).