Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1638803 > unrolled thread

[PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

Started byXunlei Pang <xlpang@redhat.com>
First post2017-05-10 15:10 +0200
Last post2017-05-24 11:00 +0200
Articles 7 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks Xunlei Pang <xlpang@redhat.com> - 2017-05-10 15:10 +0200
    Re: [PATCH] sched/deadline: Zero out positive runtime after  throttling constrained tasks Steven Rostedt <rostedt@goodmis.org> - 2017-05-10 15:40 +0200
      Re: [PATCH] sched/deadline: Zero out positive runtime after  throttling constrained tasks Xunlei Pang <xpang@redhat.com> - 2017-05-11 03:40 +0200
        Re: [PATCH] sched/deadline: Zero out positive runtime after  throttling constrained tasks Xunlei Pang <xpang@redhat.com> - 2017-05-12 05:40 +0200
    Re: [PATCH] sched/deadline: Zero out positive runtime after  throttling constrained tasks Juri Lelli <juri.lelli@arm.com> - 2017-05-11 16:30 +0200
    Re: [PATCH] sched/deadline: Zero out positive runtime after  throttling constrained tasks Daniel Bristot de Oliveira <bristot@redhat.com> - 2017-05-11 16:40 +0200
      Re: [PATCH] sched/deadline: Zero out positive runtime after  throttling constrained tasks Xunlei Pang <xpang@redhat.com> - 2017-05-24 11:00 +0200

#1638803 — [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromXunlei Pang <xlpang@redhat.com>
Date2017-05-10 15:10 +0200
Subject[PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tFzxo-19m-19@gated-at.bofh.it>
When a contrained task is throttled by dl_check_constrained_dl(),
it may carry the remaining positive runtime, as a result when
dl_task_timer() fires and calls replenish_dl_entity(), it will
not be replenished correctly due to the positive dl_se->runtime.

This patch assigns its runtime to 0 if positive after throttling.

Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Xunlei Pang <xlpang@redhat.com>
---
 kernel/sched/deadline.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index a2ce590..d3d291e 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
 		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
 			return;
 		dl_se->dl_throttled = 1;
+		if (dl_se->runtime > 0)
+			dl_se->runtime = 0;
 	}
 }
 
-- 
1.8.3.1

[toc] | [next] | [standalone]


#1638829 — Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromSteven Rostedt <rostedt@goodmis.org>
Date2017-05-10 15:40 +0200
SubjectRe: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tFA0q-1j1-25@gated-at.bofh.it>
In reply to#1638803
On Wed, 10 May 2017 21:03:37 +0800
Xunlei Pang <xlpang@redhat.com> wrote:

> When a contrained task is throttled by dl_check_constrained_dl(),
> it may carry the remaining positive runtime, as a result when
> dl_task_timer() fires and calls replenish_dl_entity(), it will
> not be replenished correctly due to the positive dl_se->runtime.
> 
> This patch assigns its runtime to 0 if positive after throttling.
> 
> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
> Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
> Signed-off-by: Xunlei Pang <xlpang@redhat.com>
> ---
>  kernel/sched/deadline.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index a2ce590..d3d291e 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
>  		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
>  			return;
>  		dl_se->dl_throttled = 1;
> +		if (dl_se->runtime > 0)
> +			dl_se->runtime = 0;

This makes sense to me, but should we have any accounting for runtime
that was missed due to wakeups and such?

-- Steve

>  	}
>  }
>  

[toc] | [prev] | [next] | [standalone]


#1639146 — Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromXunlei Pang <xpang@redhat.com>
Date2017-05-11 03:40 +0200
SubjectRe: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tFLfb-8aU-9@gated-at.bofh.it>
In reply to#1638829
On 05/10/2017 at 09:36 PM, Steven Rostedt wrote:
> On Wed, 10 May 2017 21:03:37 +0800
> Xunlei Pang <xlpang@redhat.com> wrote:
>
>> When a contrained task is throttled by dl_check_constrained_dl(),
>> it may carry the remaining positive runtime, as a result when
>> dl_task_timer() fires and calls replenish_dl_entity(), it will
>> not be replenished correctly due to the positive dl_se->runtime.
>>
>> This patch assigns its runtime to 0 if positive after throttling.
>>
>> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
>> Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
>> Signed-off-by: Xunlei Pang <xlpang@redhat.com>
>> ---
>>  kernel/sched/deadline.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>> index a2ce590..d3d291e 100644
>> --- a/kernel/sched/deadline.c
>> +++ b/kernel/sched/deadline.c
>> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
>>  		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
>>  			return;
>>  		dl_se->dl_throttled = 1;
>> +		if (dl_se->runtime > 0)
>> +			dl_se->runtime = 0;
> This makes sense to me, but should we have any accounting for runtime
> that was missed due to wakeups and such?

It sounds a good idea, will try to add that to "/proc/<pid>/sched".

Looks like we should also catch and handle the deadline miss in dl_runtime_exceeded(),
I guess we can add the accounting together.

Regards,
Xunlei

[toc] | [prev] | [next] | [standalone]


#1640169 — Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromXunlei Pang <xpang@redhat.com>
Date2017-05-12 05:40 +0200
SubjectRe: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tG9AS-6YM-15@gated-at.bofh.it>
In reply to#1639146
On 05/11/2017 at 09:38 AM, Xunlei Pang wrote:
> On 05/10/2017 at 09:36 PM, Steven Rostedt wrote:
>> On Wed, 10 May 2017 21:03:37 +0800
>> Xunlei Pang <xlpang@redhat.com> wrote:
>>
>>> When a contrained task is throttled by dl_check_constrained_dl(),
>>> it may carry the remaining positive runtime, as a result when
>>> dl_task_timer() fires and calls replenish_dl_entity(), it will
>>> not be replenished correctly due to the positive dl_se->runtime.
>>>
>>> This patch assigns its runtime to 0 if positive after throttling.
>>>
>>> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
>>> Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
>>> Signed-off-by: Xunlei Pang <xlpang@redhat.com>
>>> ---
>>>  kernel/sched/deadline.c | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>>> index a2ce590..d3d291e 100644
>>> --- a/kernel/sched/deadline.c
>>> +++ b/kernel/sched/deadline.c
>>> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
>>>  		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
>>>  			return;
>>>  		dl_se->dl_throttled = 1;
>>> +		if (dl_se->runtime > 0)
>>> +			dl_se->runtime = 0;
>> This makes sense to me, but should we have any accounting for runtime
>> that was missed due to wakeups and such?
> It sounds a good idea, will try to add that to "/proc/<pid>/sched".
>
> Looks like we should also catch and handle the deadline miss in dl_runtime_exceeded(),
> I guess we can add the accounting together.

Hi all,

Thanks for all your valuable review!

FYI: I just sent v2 added two more patches.

Regards,
Xunlei

[toc] | [prev] | [next] | [standalone]


#1639545 — Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromJuri Lelli <juri.lelli@arm.com>
Date2017-05-11 16:30 +0200
SubjectRe: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tFXgn-7ta-49@gated-at.bofh.it>
In reply to#1638803
Hi,

On 10/05/17 21:03, Xunlei Pang wrote:
> When a contrained task is throttled by dl_check_constrained_dl(),
> it may carry the remaining positive runtime, as a result when
> dl_task_timer() fires and calls replenish_dl_entity(), it will
> not be replenished correctly due to the positive dl_se->runtime.
> 
> This patch assigns its runtime to 0 if positive after throttling.
> 
> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
> Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
> Signed-off-by: Xunlei Pang <xlpang@redhat.com>
> ---
>  kernel/sched/deadline.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index a2ce590..d3d291e 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
>  		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
>  			return;
>  		dl_se->dl_throttled = 1;
> +		if (dl_se->runtime > 0)
> +			dl_se->runtime = 0;
>  	}

Looks good to me. Although, we could alternatively add a flag and use
that in replenish_dl_entity() to reset runtime (as we do for dl_yielded).

Flags need refactoring, though.

Thanks,

- Juri

[toc] | [prev] | [next] | [standalone]


#1639617 — Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromDaniel Bristot de Oliveira <bristot@redhat.com>
Date2017-05-11 16:40 +0200
SubjectRe: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tFXq4-7wN-61@gated-at.bofh.it>
In reply to#1638803
On 05/10/2017 03:03 PM, Xunlei Pang wrote:
> When a contrained task is throttled by dl_check_constrained_dl(),
> it may carry the remaining positive runtime, as a result when
> dl_task_timer() fires and calls replenish_dl_entity(), it will
> not be replenished correctly due to the positive dl_se->runtime.
> 
> This patch assigns its runtime to 0 if positive after throttling.
> 
> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
> Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
> Signed-off-by: Xunlei Pang <xlpang@redhat.com>
> ---
>  kernel/sched/deadline.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index a2ce590..d3d291e 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
>  		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
>  			return;
>  		dl_se->dl_throttled = 1;
> +		if (dl_se->runtime > 0)
> +			dl_se->runtime = 0;
>  	}
>  }

Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>

-- Daniel

[toc] | [prev] | [next] | [standalone]


#1649322 — Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks

FromXunlei Pang <xpang@redhat.com>
Date2017-05-24 11:00 +0200
SubjectRe: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
Message-ID<tKAj8-8uU-11@gated-at.bofh.it>
In reply to#1639617
Hi Peter,

On 05/11/2017 at 10:35 PM, Daniel Bristot de Oliveira wrote:
> On 05/10/2017 03:03 PM, Xunlei Pang wrote:
>> When a contrained task is throttled by dl_check_constrained_dl(),
>> it may carry the remaining positive runtime, as a result when
>> dl_task_timer() fires and calls replenish_dl_entity(), it will
>> not be replenished correctly due to the positive dl_se->runtime.
>>
>> This patch assigns its runtime to 0 if positive after throttling.
>>
>> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
>> Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
>> Signed-off-by: Xunlei Pang <xlpang@redhat.com>
>> ---
>>  kernel/sched/deadline.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
>> index a2ce590..d3d291e 100644
>> --- a/kernel/sched/deadline.c
>> +++ b/kernel/sched/deadline.c
>> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct sched_dl_entity *dl_se)
>>  		if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
>>  			return;
>>  		dl_se->dl_throttled = 1;
>> +		if (dl_se->runtime > 0)
>> +			dl_se->runtime = 0;
>>  	}
>>  }
> Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>

Could you please have this one? Thanks!

Regards,
Xunlei

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web