From: "Doug Smythies" <dsmythies@telus.net>
To: 'Thomas Ilsche' <thomas.ilsche@tu-dresden.de>,
"'Rafael J. Wysocki'" <rafael@kernel.org>
Cc: 'Peter Zijlstra' <peterz@infradead.org>,
'Linux PM' <linux-pm@vger.kernel.org>,
'Frederic Weisbecker' <fweisbec@gmail.com>,
'Thomas Gleixner' <tglx@linutronix.de>,
'Paul McKenney' <paulmck@linux.vnet.ibm.com>,
'Rik van Riel' <riel@surriel.com>,
'Aubrey Li' <aubrey.li@linux.intel.com>,
'Mike Galbraith' <mgalbraith@suse.de>,
'LKML' <linux-kernel@vger.kernel.org>,
Doug Smythies <dsmythies@telus.net>
Subject: RE: [RFT][PATCH v7 6/8] sched: idle: Select idle state before stopping the tick
Date: Wed, 28 Mar 2018 13:41:35 -0700 [thread overview]
Message-ID: <006501d3c6d5$2d03e500$870baf00$@net> (raw)
In-Reply-To: 1CoHfInOKlebY1CoMfMNTB
On 2018.03.28 08:15 Thomas Ilsche wrote:
> On 2018-03-28 12:56, Rafael J. Wysocki wrote:
>> On Wed, Mar 28, 2018 at 12:37 PM, Rafael J. Wysocki <rafael@kernel.org> wrote:
>>> On Wed, Mar 28, 2018 at 10:38 AM, Thomas Ilsche
>>> <thomas.ilsche@tu-dresden.de> wrote:
>>>> On 2018-03-28 10:13, Rafael J. Wysocki wrote:
>>>>>
>>
>> [cut]
>>
>>>
>>> So I do
>>>
>>> $ for cpu in 0 1 2 3; do taskset -c $cpu sh -c 'while true; do usleep
>>> 500; done' & done
>>>
>>> which is a shell kind of imitation of the above and I cannot see this
>>> issue at all.
>>>
>>> I count the number of times data->next_timer_us in menu_select() is
>>> greater than TICK_USEC and while this "workload" is running, that
>>> number is exactly 0.
>>>
>>> I'll try with a C program still.
>>
>> And with a C program I see data->next_timer_us greater than TICK_USEC
>> while it is running, so let me dig deeper.
>>
>
> I can confirm that a shell-loop behaves differently like you describe.
> Even if it's just a shell-loop calling "main{usleep(500);}" binary.
I normally use the C program method.
The timer there returns with the need_sched() flag set.
I do not seem to have usleep on my system, but when using sleep in a
shell loop, the timer returns without the need_resched() flag set.
Most of my test results involving varying the value of
POLL_IDLE_COUNT are total garbage, because I was using the
C program method, and thus exiting the poll_idle loop based
on the need_resched() flag and not the POLL_IDLE_COUNT
setting.
I don't know if I can re-do the work, because I
do not have a good way to get my system to use Idle
State 0 with any real workflow, and I seem to get into
side effect issues when I disable other idle states to
force more use of idle state 0.
... Doug
next prev parent reply other threads:[~2018-03-28 20:41 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-20 15:12 [RFT][PATCH v7 0/8] sched/cpuidle: Idle loop rework Rafael J. Wysocki
2018-03-20 15:13 ` [RFT][PATCH v7 1/8] time: tick-sched: Reorganize idle tick management code Rafael J. Wysocki
2018-03-20 15:15 ` [RFT][PATCH v7 2/8] sched: idle: Do not stop the tick upfront in the idle loop Rafael J. Wysocki
2018-03-20 15:15 ` [RFT][PATCH v7 3/8] " Rafael J. Wysocki
2018-03-20 18:00 ` [Correction][RFT][PATCH v7 3/8] sched: idle: Do not stop the tick before cpuidle_idle_call() Rafael J. Wysocki
2018-03-20 15:16 ` [RFT][PATCH v7 4/8] jiffies: Introduce USER_TICK_USEC and redefine TICK_USEC Rafael J. Wysocki
2018-03-20 15:45 ` [RFT][PATCH v7 5/8] cpuidle: Return nohz hint from cpuidle_select() Rafael J. Wysocki
2018-03-21 6:48 ` [RFT][PATCH v7.1 " Rafael J. Wysocki
2018-03-21 11:52 ` Rafael J. Wysocki
2018-03-21 13:03 ` [RFT][PATCH v7.2 " Rafael J. Wysocki
2018-03-21 14:36 ` [RFT][PATCH v7 " Rafael J. Wysocki
2018-03-21 17:59 ` Thomas Ilsche
2018-03-21 22:15 ` Rafael J. Wysocki
2018-03-22 13:18 ` Thomas Ilsche
2018-03-22 17:23 ` Rafael J. Wysocki
2018-03-22 6:24 ` Doug Smythies
2018-03-22 15:41 ` Doug Smythies
2018-03-22 17:21 ` Rafael J. Wysocki
2018-03-21 18:23 ` Doug Smythies
2018-03-22 17:40 ` [RFT][PATCH v7.3 " Rafael J. Wysocki
2018-03-28 9:14 ` Thomas Ilsche
2018-03-30 9:39 ` Rafael J. Wysocki
2018-04-10 15:22 ` Thomas Ilsche
2018-03-22 20:46 ` Doug Smythies
2018-03-20 15:45 ` [RFT][PATCH v7 6/8] sched: idle: Select idle state before stopping the tick Rafael J. Wysocki
2018-03-27 21:50 ` Thomas Ilsche
2018-03-27 22:10 ` Rafael J. Wysocki
2018-03-28 8:13 ` Rafael J. Wysocki
2018-03-28 8:38 ` Thomas Ilsche
2018-03-28 10:37 ` Rafael J. Wysocki
2018-03-28 10:56 ` Rafael J. Wysocki
2018-03-28 15:15 ` Thomas Ilsche
2018-03-28 20:41 ` Doug Smythies [this message]
2018-03-28 23:11 ` Rafael J. Wysocki
2018-03-20 15:46 ` [RFT][PATCH v7 7/8] cpuidle: menu: Refine idle state selection for running tick Rafael J. Wysocki
2018-03-20 15:47 ` [RFT][PATCH v7 8/8] cpuidle: menu: Avoid selecting shallow states with stopped tick Rafael J. Wysocki
2018-03-20 17:52 ` [RFT][PATCH v7 3/8] sched: idle: Do not stop the tick upfront in the idle loop Doug Smythies
2018-03-20 18:01 ` Rafael J. Wysocki
2018-03-21 12:31 ` [RFT][PATCH v7 0/8] sched/cpuidle: Idle loop rework Rik van Riel
2018-03-21 13:55 ` Rafael J. Wysocki
2018-03-21 14:53 ` Rik van Riel
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='006501d3c6d5$2d03e500$870baf00$@net' \
--to=dsmythies@telus.net \
--cc=aubrey.li@linux.intel.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mgalbraith@suse.de \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=riel@surriel.com \
--cc=tglx@linutronix.de \
--cc=thomas.ilsche@tu-dresden.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.