From: Sudeep Holla <sudeep.holla@arm.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Preeti U Murthy <preeti@linux.vnet.ibm.com>,
"peterz@infradead.org" <peterz@infradead.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"rafael.j.wysocki@intel.com" <rafael.j.wysocki@intel.com>,
"daniel.lezcano@linaro.org" <daniel.lezcano@linaro.org>,
"rlippert@google.com" <rlippert@google.com>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"mingo@redhat.com" <mingo@redhat.com>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 0/3] cpuidle: updates related to tick_broadcast_enter() failures
Date: Mon, 11 May 2015 16:13:37 +0100 [thread overview]
Message-ID: <5550C721.2050906@arm.com> (raw)
In-Reply-To: <8965830.CMQzZzsqm0@vostro.rjw.lan>
On 10/05/15 00:15, Rafael J. Wysocki wrote:
> On Saturday, May 09, 2015 10:33:05 PM Rafael J. Wysocki wrote:
>> On Saturday, May 09, 2015 10:11:41 PM Rafael J. Wysocki wrote:
>>> On Saturday, May 09, 2015 11:19:16 AM Preeti U Murthy wrote:
>>>> Hi Rafael,
>>>>
>>>> On 05/08/2015 07:48 PM, Rafael J. Wysocki wrote:
>>>
>>> [cut]
>>>
>>>>>>
>>>>>> + /* Take note of the planned idle state. */
>>>>>> + idle_set_state(smp_processor_id(), target_state);
>>>>>
>>>>> And I wouldn't do this either.
>>>>>
>>>>> The behavior here is pretty much as though the driver demoted the state chosen
>>>>> by the governor and we don't call idle_set_state() again in those cases.
>>>>
>>>> Why is this wrong?
>>>
>>> It is not "wrong", but incomplete, because demotions done by the cpuidle driver
>>> should also be taken into account in the same way.
>>>
>>> But I'm seeing that the recent patch of mine that made cpuidle_enter_state()
>>> call default_idle_call() was a mistake, because it might confuse find_idlest_cpu()
>>> significantly as to what state the CPU is in. I'll drop that one for now.
>>
>> OK, done.
>>
>> So after I've dropped it I think we need to do three things:
>> (1) Move the idle_set_state() calls to cpuidle_enter_state().
>> (2) Make cpuidle_enter_state() call default_idle_call() again, but this time
>> do that *before* it has called idle_set_state() for target_state.
>> (3) Introduce demotion as per my last patch.
>>
>> Let me cut patches for that.
>
> Done as per the above and the patches follow in replies to this messge.
>
> All on top of the current linux-next branch of the linux-pm.git tree.
>
Tested on ARM Vexpress platforms with one of the CPU in broadcast mode
and also with broadcast timer. So, you can add:
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Regards,
Sudeep
WARNING: multiple messages have this Message-ID (diff)
From: Sudeep Holla <sudeep.holla@arm.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Preeti U Murthy <preeti@linux.vnet.ibm.com>,
"peterz@infradead.org" <peterz@infradead.org>
Cc: "rlippert@google.com" <rlippert@google.com>,
"daniel.lezcano@linaro.org" <daniel.lezcano@linaro.org>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"rafael.j.wysocki@intel.com" <rafael.j.wysocki@intel.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"mingo@redhat.com" <mingo@redhat.com>,
Sudeep Holla <sudeep.holla@arm.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 0/3] cpuidle: updates related to tick_broadcast_enter() failures
Date: Mon, 11 May 2015 16:13:37 +0100 [thread overview]
Message-ID: <5550C721.2050906@arm.com> (raw)
In-Reply-To: <8965830.CMQzZzsqm0@vostro.rjw.lan>
On 10/05/15 00:15, Rafael J. Wysocki wrote:
> On Saturday, May 09, 2015 10:33:05 PM Rafael J. Wysocki wrote:
>> On Saturday, May 09, 2015 10:11:41 PM Rafael J. Wysocki wrote:
>>> On Saturday, May 09, 2015 11:19:16 AM Preeti U Murthy wrote:
>>>> Hi Rafael,
>>>>
>>>> On 05/08/2015 07:48 PM, Rafael J. Wysocki wrote:
>>>
>>> [cut]
>>>
>>>>>>
>>>>>> + /* Take note of the planned idle state. */
>>>>>> + idle_set_state(smp_processor_id(), target_state);
>>>>>
>>>>> And I wouldn't do this either.
>>>>>
>>>>> The behavior here is pretty much as though the driver demoted the state chosen
>>>>> by the governor and we don't call idle_set_state() again in those cases.
>>>>
>>>> Why is this wrong?
>>>
>>> It is not "wrong", but incomplete, because demotions done by the cpuidle driver
>>> should also be taken into account in the same way.
>>>
>>> But I'm seeing that the recent patch of mine that made cpuidle_enter_state()
>>> call default_idle_call() was a mistake, because it might confuse find_idlest_cpu()
>>> significantly as to what state the CPU is in. I'll drop that one for now.
>>
>> OK, done.
>>
>> So after I've dropped it I think we need to do three things:
>> (1) Move the idle_set_state() calls to cpuidle_enter_state().
>> (2) Make cpuidle_enter_state() call default_idle_call() again, but this time
>> do that *before* it has called idle_set_state() for target_state.
>> (3) Introduce demotion as per my last patch.
>>
>> Let me cut patches for that.
>
> Done as per the above and the patches follow in replies to this messge.
>
> All on top of the current linux-next branch of the linux-pm.git tree.
>
Tested on ARM Vexpress platforms with one of the CPU in broadcast mode
and also with broadcast timer. So, you can add:
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Regards,
Sudeep
next prev parent reply other threads:[~2015-05-11 15:13 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-08 7:35 [PATCH V3] cpuidle: Handle tick_broadcast_enter() failure gracefully Preeti U Murthy
2015-05-08 12:43 ` Sudeep Holla
2015-05-08 12:43 ` Sudeep Holla
2015-05-08 14:18 ` Rafael J. Wysocki
2015-05-08 14:18 ` Rafael J. Wysocki
2015-05-08 21:51 ` Rafael J. Wysocki
2015-05-08 21:51 ` Rafael J. Wysocki
2015-05-09 5:49 ` Preeti U Murthy
2015-05-09 5:49 ` Preeti U Murthy
2015-05-09 18:46 ` Rafael J. Wysocki
2015-05-09 18:46 ` Rafael J. Wysocki
2015-05-09 18:48 ` Rafael J. Wysocki
2015-05-09 18:48 ` Rafael J. Wysocki
2015-05-09 20:11 ` Rafael J. Wysocki
2015-05-09 20:11 ` Rafael J. Wysocki
2015-05-09 20:33 ` Rafael J. Wysocki
2015-05-09 20:33 ` Rafael J. Wysocki
2015-05-09 23:15 ` [PATCH 0/3] cpuidle: updates related to tick_broadcast_enter() failures Rafael J. Wysocki
2015-05-09 23:15 ` Rafael J. Wysocki
2015-05-09 23:18 ` [PATCH 1/3] sched / idle: Call idle_set_state() from cpuidle_enter_state() Rafael J. Wysocki
2015-05-09 23:18 ` Rafael J. Wysocki
2015-05-09 23:18 ` [PATCH 2/3] sched / idle: Call default_idle_call() " Rafael J. Wysocki
2015-05-09 23:18 ` Rafael J. Wysocki
2015-05-09 23:19 ` [PATCH 3/3] cpuidle: Select a different state on tick_broadcast_enter() failures Rafael J. Wysocki
2015-05-09 23:19 ` Rafael J. Wysocki
2024-08-21 9:51 ` Dhruva Gole
2024-08-21 11:25 ` Rafael J. Wysocki
2015-05-11 3:48 ` [PATCH 0/3] cpuidle: updates related to " Preeti U Murthy
2015-05-11 3:48 ` Preeti U Murthy
2015-05-11 5:21 ` Preeti U Murthy
2015-05-11 5:21 ` Preeti U Murthy
2015-05-11 23:13 ` Rafael J. Wysocki
2015-05-11 23:13 ` Rafael J. Wysocki
2015-05-11 15:13 ` Sudeep Holla [this message]
2015-05-11 15:13 ` Sudeep Holla
2015-05-11 23:14 ` Rafael J. Wysocki
2015-05-11 23:14 ` Rafael J. Wysocki
2015-05-11 17:40 ` Daniel Lezcano
2015-05-11 17:40 ` Daniel Lezcano
2015-05-11 23:31 ` Rafael J. Wysocki
2015-05-11 23:31 ` Rafael J. Wysocki
2015-05-12 8:41 ` Daniel Lezcano
2015-05-12 8:41 ` Daniel Lezcano
2015-05-12 13:23 ` Rafael J. Wysocki
2015-05-12 13:23 ` Rafael J. Wysocki
2015-05-12 18:04 ` Daniel Lezcano
2015-05-12 18:04 ` Daniel Lezcano
2015-05-13 22:59 ` Kevin Hilman
2015-05-13 22:59 ` Kevin Hilman
2015-05-14 0:16 ` Rafael J. Wysocki
2015-05-14 0:16 ` Rafael J. Wysocki
2015-05-14 0:13 ` Kevin Hilman
2015-05-14 0:13 ` Kevin Hilman
2015-05-14 0:42 ` Rafael J. Wysocki
2015-05-14 0:42 ` Rafael J. Wysocki
2015-05-14 0:31 ` Kevin Hilman
2015-05-14 0:31 ` Kevin Hilman
2015-05-14 0:31 ` Kevin Hilman
2015-05-14 3:59 ` Preeti U Murthy
2015-05-14 3:59 ` Preeti U Murthy
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=5550C721.2050906@arm.com \
--to=sudeep.holla@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=preeti@linux.vnet.ibm.com \
--cc=rafael.j.wysocki@intel.com \
--cc=rjw@rjwysocki.net \
--cc=rlippert@google.com \
--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.