Le Friday 28 Apr 2017 à 16:52:59 (+0100), Morten Rasmussen a écrit :
> Hi Vincent,
>
> Sorry for crashing the party this late. As you know, it takes a long
> period of uninterrupted review time to properly review PELT stuff.
>
> Disclaimer: I haven't read the rest of the thread yet.
>
> On Mon,
Le Friday 28 Apr 2017 à 16:52:59 (+0100), Morten Rasmussen a écrit :
> Hi Vincent,
>
> Sorry for crashing the party this late. As you know, it takes a long
> period of uninterrupted review time to properly review PELT stuff.
>
> Disclaimer: I haven't read the rest of the thread yet.
>
> On Mon,
On 1 May 2017 at 11:00, Peter Zijlstra wrote:
> On Sat, Apr 29, 2017 at 12:09:24AM +0200, Peter Zijlstra wrote:
>> On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
>> > +++ b/include/linux/sched.h
>> > @@ -313,6 +313,7 @@ struct load_weight {
>> > */
>> >
On 1 May 2017 at 11:00, Peter Zijlstra wrote:
> On Sat, Apr 29, 2017 at 12:09:24AM +0200, Peter Zijlstra wrote:
>> On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
>> > +++ b/include/linux/sched.h
>> > @@ -313,6 +313,7 @@ struct load_weight {
>> > */
>> > struct sched_avg {
>>
On Sat, Apr 29, 2017 at 12:09:24AM +0200, Peter Zijlstra wrote:
> On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> > +++ b/include/linux/sched.h
> > @@ -313,6 +313,7 @@ struct load_weight {
> > */
> > struct sched_avg {
> > u64 last_update_time;
On Sat, Apr 29, 2017 at 12:09:24AM +0200, Peter Zijlstra wrote:
> On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> > +++ b/include/linux/sched.h
> > @@ -313,6 +313,7 @@ struct load_weight {
> > */
> > struct sched_avg {
> > u64 last_update_time;
On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> +++ b/include/linux/sched.h
> @@ -313,6 +313,7 @@ struct load_weight {
> */
> struct sched_avg {
> u64 last_update_time;
> + u64 stolen_idle_time;
> u64
On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> +++ b/include/linux/sched.h
> @@ -313,6 +313,7 @@ struct load_weight {
> */
> struct sched_avg {
> u64 last_update_time;
> + u64 stolen_idle_time;
> u64
On 28/04/17 16:52, Morten Rasmussen wrote:
> Hi Vincent,
[...]
> As mentioned above, waiting time, i.e. !running && weight, is not
> scaled, which causes trouble for load.
I ran some rt-app-based tests on a system with frequency and cpu invariance.
(1) Two periodic 20% tasks with 12ms period
On 28/04/17 16:52, Morten Rasmussen wrote:
> Hi Vincent,
[...]
> As mentioned above, waiting time, i.e. !running && weight, is not
> scaled, which causes trouble for load.
I ran some rt-app-based tests on a system with frequency and cpu invariance.
(1) Two periodic 20% tasks with 12ms period
Hi Vincent,
Sorry for crashing the party this late. As you know, it takes a long
period of uninterrupted review time to properly review PELT stuff.
Disclaimer: I haven't read the rest of the thread yet.
On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> The current
Hi Vincent,
Sorry for crashing the party this late. As you know, it takes a long
period of uninterrupted review time to properly review PELT stuff.
Disclaimer: I haven't read the rest of the thread yet.
On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> The current
On 14 April 2017 at 10:49, Vincent Guittot wrote:
> On 13 April 2017 at 18:13, Peter Zijlstra wrote:
>> On Thu, Apr 13, 2017 at 05:16:20PM +0200, Vincent Guittot wrote:
>>> On 13 April 2017 at 15:39, Peter Zijlstra wrote:
On 14 April 2017 at 10:49, Vincent Guittot wrote:
> On 13 April 2017 at 18:13, Peter Zijlstra wrote:
>> On Thu, Apr 13, 2017 at 05:16:20PM +0200, Vincent Guittot wrote:
>>> On 13 April 2017 at 15:39, Peter Zijlstra wrote:
>>
>>> > OK, so the reason util_avg varies is because we compute it
On 13 April 2017 at 18:13, Peter Zijlstra wrote:
> On Thu, Apr 13, 2017 at 05:16:20PM +0200, Vincent Guittot wrote:
>> On 13 April 2017 at 15:39, Peter Zijlstra wrote:
>
>> > OK, so the reason util_avg varies is because we compute it wrong. And I
>> >
On 13 April 2017 at 18:13, Peter Zijlstra wrote:
> On Thu, Apr 13, 2017 at 05:16:20PM +0200, Vincent Guittot wrote:
>> On 13 April 2017 at 15:39, Peter Zijlstra wrote:
>
>> > OK, so the reason util_avg varies is because we compute it wrong. And I
>> > think we can easily fix that once we pull
On 13 April 2017 at 20:06, Peter Zijlstra wrote:
> On Thu, Apr 13, 2017 at 04:59:15PM +0200, Vincent Guittot wrote:
>> On 13 April 2017 at 15:32, Peter Zijlstra wrote:
>> > On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
>> >
>> >> I
On 13 April 2017 at 20:06, Peter Zijlstra wrote:
> On Thu, Apr 13, 2017 at 04:59:15PM +0200, Vincent Guittot wrote:
>> On 13 April 2017 at 15:32, Peter Zijlstra wrote:
>> > On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
>> >
>> >> I still wonder about the whole !running vs
On Thu, Apr 13, 2017 at 04:59:15PM +0200, Vincent Guittot wrote:
> On 13 April 2017 at 15:32, Peter Zijlstra wrote:
> > On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
> >
> >> I still wonder about the whole !running vs !weight thing.,
> >
> > Ah, since we
On Thu, Apr 13, 2017 at 04:59:15PM +0200, Vincent Guittot wrote:
> On 13 April 2017 at 15:32, Peter Zijlstra wrote:
> > On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
> >
> >> I still wonder about the whole !running vs !weight thing.,
> >
> > Ah, since we use this for both util
On Thu, Apr 13, 2017 at 05:16:20PM +0200, Vincent Guittot wrote:
> On 13 April 2017 at 15:39, Peter Zijlstra wrote:
> > OK, so the reason util_avg varies is because we compute it wrong. And I
> > think we can easily fix that once we pull out all the factors (which
> > would
On Thu, Apr 13, 2017 at 05:16:20PM +0200, Vincent Guittot wrote:
> On 13 April 2017 at 15:39, Peter Zijlstra wrote:
> > OK, so the reason util_avg varies is because we compute it wrong. And I
> > think we can easily fix that once we pull out all the factors (which
> > would mean your patch and
On 13 April 2017 at 15:39, Peter Zijlstra wrote:
> On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
>
>> > Secondly, what's up with the util_sum < LOAD_AVG_MAX * 1000 thing?
>>
>> The lost idle time makes sense only if the task can also be "idle"
>> when
On 13 April 2017 at 15:39, Peter Zijlstra wrote:
> On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
>
>> > Secondly, what's up with the util_sum < LOAD_AVG_MAX * 1000 thing?
>>
>> The lost idle time makes sense only if the task can also be "idle"
>> when running at max capacity.
On 13 April 2017 at 15:32, Peter Zijlstra wrote:
> On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
>
>> I still wonder about the whole !running vs !weight thing.,
>
> Ah, since we use this for both util _and_ load, we need !running &&
> !weight, and it so
On 13 April 2017 at 15:32, Peter Zijlstra wrote:
> On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
>
>> I still wonder about the whole !running vs !weight thing.,
>
> Ah, since we use this for both util _and_ load, we need !running &&
> !weight, and it so happens that !weight
On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > Secondly, what's up with the util_sum < LOAD_AVG_MAX * 1000 thing?
>
> The lost idle time makes sense only if the task can also be "idle"
> when running at max capacity. When util_sum reaches the
>
On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > Secondly, what's up with the util_sum < LOAD_AVG_MAX * 1000 thing?
>
> The lost idle time makes sense only if the task can also be "idle"
> when running at max capacity. When util_sum reaches the
>
On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
> I still wonder about the whole !running vs !weight thing.,
Ah, since we use this for both util _and_ load, we need !running &&
!weight, and it so happens that !weight implies !running. Is that it?
On Wed, Apr 12, 2017 at 01:28:58PM +0200, Peter Zijlstra wrote:
> I still wonder about the whole !running vs !weight thing.,
Ah, since we use this for both util _and_ load, we need !running &&
!weight, and it so happens that !weight implies !running. Is that it?
On 12 April 2017 at 17:44, Peter Zijlstra wrote:
> On Wed, Apr 12, 2017 at 04:50:47PM +0200, Vincent Guittot wrote:
>> Le Wednesday 12 Apr 2017 à 13:28:58 (+0200), Peter Zijlstra a écrit :
>
>> >
>> > |-|-| (wall-time)
>> > -
On 12 April 2017 at 17:44, Peter Zijlstra wrote:
> On Wed, Apr 12, 2017 at 04:50:47PM +0200, Vincent Guittot wrote:
>> Le Wednesday 12 Apr 2017 à 13:28:58 (+0200), Peter Zijlstra a écrit :
>
>> >
>> > |-|-| (wall-time)
>> > - F=100%
>> >
On Wed, Apr 12, 2017 at 04:50:47PM +0200, Vincent Guittot wrote:
> Le Wednesday 12 Apr 2017 à 13:28:58 (+0200), Peter Zijlstra a écrit :
> >
> > |-|-| (wall-time)
> > - F=100%
> > **--- F= 66%
> > |--||
On Wed, Apr 12, 2017 at 04:50:47PM +0200, Vincent Guittot wrote:
> Le Wednesday 12 Apr 2017 à 13:28:58 (+0200), Peter Zijlstra a écrit :
> >
> > |-|-| (wall-time)
> > - F=100%
> > **--- F= 66%
> > |--||
Le Wednesday 12 Apr 2017 à 13:28:58 (+0200), Peter Zijlstra a écrit :
> On Tue, Apr 11, 2017 at 03:09:20PM +0200, Vincent Guittot wrote:
> > Le Tuesday 11 Apr 2017 à 12:49:49 (+0200), Peter Zijlstra a écrit :
> > >
> > > Lets go back to the unscaled version:
> > >
> > > running idle
> > >
Le Wednesday 12 Apr 2017 à 13:28:58 (+0200), Peter Zijlstra a écrit :
> On Tue, Apr 11, 2017 at 03:09:20PM +0200, Vincent Guittot wrote:
> > Le Tuesday 11 Apr 2017 à 12:49:49 (+0200), Peter Zijlstra a écrit :
> > >
> > > Lets go back to the unscaled version:
> > >
> > > running idle
> > >
On Tue, Apr 11, 2017 at 03:09:20PM +0200, Vincent Guittot wrote:
> Le Tuesday 11 Apr 2017 à 12:49:49 (+0200), Peter Zijlstra a écrit :
> >
> > Lets go back to the unscaled version:
> >
> > running idle
> >|*|-|
> >
> > With the current code, that would effectively end
On Tue, Apr 11, 2017 at 03:09:20PM +0200, Vincent Guittot wrote:
> Le Tuesday 11 Apr 2017 à 12:49:49 (+0200), Peter Zijlstra a écrit :
> >
> > Lets go back to the unscaled version:
> >
> > running idle
> >|*|-|
> >
> > With the current code, that would effectively end
Le Tuesday 11 Apr 2017 à 12:49:49 (+0200), Peter Zijlstra a écrit :
>
> Lets go back to the unscaled version:
>
> running idle
>|*|-|
>
> With the current code, that would effectively end up like (again
> assuming 50%):
>
> running idle
>
Le Tuesday 11 Apr 2017 à 12:49:49 (+0200), Peter Zijlstra a écrit :
>
> Lets go back to the unscaled version:
>
> running idle
>|*|-|
>
> With the current code, that would effectively end up like (again
> assuming 50%):
>
> running idle
>
Le Tuesday 11 Apr 2017 à 12:41:36 (+0200), Peter Zijlstra a écrit :
> On Tue, Apr 11, 2017 at 11:40:21AM +0200, Vincent Guittot wrote:
> > Le Tuesday 11 Apr 2017 à 10:53:05 (+0200), Peter Zijlstra a écrit :
> > > On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > > > Le Monday 10
Le Tuesday 11 Apr 2017 à 12:41:36 (+0200), Peter Zijlstra a écrit :
> On Tue, Apr 11, 2017 at 11:40:21AM +0200, Vincent Guittot wrote:
> > Le Tuesday 11 Apr 2017 à 10:53:05 (+0200), Peter Zijlstra a écrit :
> > > On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > > > Le Monday 10
Lets go back to the unscaled version:
running idle
|*|-|
With the current code, that would effectively end up like (again
assuming 50%):
running idle
|*_*_*_*_*|-|
Time stays the same, but we add extra idle cycles.
Lets go back to the unscaled version:
running idle
|*|-|
With the current code, that would effectively end up like (again
assuming 50%):
running idle
|*_*_*_*_*|-|
Time stays the same, but we add extra idle cycles.
On Tue, Apr 11, 2017 at 11:40:21AM +0200, Vincent Guittot wrote:
> Le Tuesday 11 Apr 2017 à 10:53:05 (+0200), Peter Zijlstra a écrit :
> > On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > > Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
> > > >
> > > >
On Tue, Apr 11, 2017 at 11:40:21AM +0200, Vincent Guittot wrote:
> Le Tuesday 11 Apr 2017 à 10:53:05 (+0200), Peter Zijlstra a écrit :
> > On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > > Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
> > > >
> > > >
On 11 April 2017 at 11:12, Peter Zijlstra wrote:
> On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
>
>> > > + } else if (!weight) {
>> > > + if (sa->util_sum < (LOAD_AVG_MAX * 1000)) {
>> >
>> > But here I'm completely lost. WTF just happened ;-)
>>
On 11 April 2017 at 11:12, Peter Zijlstra wrote:
> On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
>
>> > > + } else if (!weight) {
>> > > + if (sa->util_sum < (LOAD_AVG_MAX * 1000)) {
>> >
>> > But here I'm completely lost. WTF just happened ;-)
>> >
>> > Firstly, I
Le Tuesday 11 Apr 2017 à 10:53:05 (+0200), Peter Zijlstra a écrit :
> On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
> > >
> > > Thanks for the rebase.
> > >
> > > On Mon, Apr 10, 2017 at 11:18:29AM +0200,
Le Tuesday 11 Apr 2017 à 10:53:05 (+0200), Peter Zijlstra a écrit :
> On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
> > >
> > > Thanks for the rebase.
> > >
> > > On Mon, Apr 10, 2017 at 11:18:29AM +0200,
On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > > + } else if (!weight) {
> > > + if (sa->util_sum < (LOAD_AVG_MAX * 1000)) {
> >
> > But here I'm completely lost. WTF just happened ;-)
> >
> > Firstly, I think we want a comment on why we care about the !weight
> >
On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> > > + } else if (!weight) {
> > > + if (sa->util_sum < (LOAD_AVG_MAX * 1000)) {
> >
> > But here I'm completely lost. WTF just happened ;-)
> >
> > Firstly, I think we want a comment on why we care about the !weight
> >
On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
> >
> > Thanks for the rebase.
> >
> > On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> >
> > Ok, so let me try and paraphrase what this patch
On Tue, Apr 11, 2017 at 09:52:21AM +0200, Vincent Guittot wrote:
> Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
> >
> > Thanks for the rebase.
> >
> > On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
> >
> > Ok, so let me try and paraphrase what this patch
Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
>
> Thanks for the rebase.
>
> On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
>
> Ok, so let me try and paraphrase what this patch does.
>
> So consider a task that runs 16 out of our 32ms window:
>
>
Le Monday 10 Apr 2017 à 19:38:02 (+0200), Peter Zijlstra a écrit :
>
> Thanks for the rebase.
>
> On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
>
> Ok, so let me try and paraphrase what this patch does.
>
> So consider a task that runs 16 out of our 32ms window:
>
>
Thanks for the rebase.
On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
Ok, so let me try and paraphrase what this patch does.
So consider a task that runs 16 out of our 32ms window:
running idle
|-|-|
You're saying that when we scale running with the
Thanks for the rebase.
On Mon, Apr 10, 2017 at 11:18:29AM +0200, Vincent Guittot wrote:
Ok, so let me try and paraphrase what this patch does.
So consider a task that runs 16 out of our 32ms window:
running idle
|-|-|
You're saying that when we scale running with the
The current implementation of load tracking invariance scales the
contribution with current frequency and uarch performance (only for
utilization) of the CPU. One main result of this formula is that the
figures are capped by current capacity of CPU. Another one is that the
load_avg is not
The current implementation of load tracking invariance scales the
contribution with current frequency and uarch performance (only for
utilization) of the CPU. One main result of this formula is that the
figures are capped by current capacity of CPU. Another one is that the
load_avg is not
60 matches
Mail list logo