linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
@ 2017-05-10 13:03 Xunlei Pang
  2017-05-10 13:36 ` Steven Rostedt
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Xunlei Pang @ 2017-05-10 13:03 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Juri Lelli, Ingo Molnar, Steven Rostedt,
	Luca Abeni, Xunlei Pang, Daniel Bristot de Oliveira

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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-10 13:03 [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks Xunlei Pang
@ 2017-05-10 13:36 ` Steven Rostedt
  2017-05-11  1:38   ` Xunlei Pang
  2017-05-11 14:20 ` Juri Lelli
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Steven Rostedt @ 2017-05-10 13:36 UTC (permalink / raw)
  To: Xunlei Pang
  Cc: linux-kernel, Peter Zijlstra, Juri Lelli, Ingo Molnar,
	Luca Abeni, Daniel Bristot de Oliveira

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

>  	}
>  }
>  

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-10 13:36 ` Steven Rostedt
@ 2017-05-11  1:38   ` Xunlei Pang
  2017-05-12  3:35     ` Xunlei Pang
  0 siblings, 1 reply; 8+ messages in thread
From: Xunlei Pang @ 2017-05-11  1:38 UTC (permalink / raw)
  To: Steven Rostedt, Xunlei Pang
  Cc: linux-kernel, Peter Zijlstra, Juri Lelli, Ingo Molnar,
	Luca Abeni, Daniel Bristot de Oliveira

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-10 13:03 [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks Xunlei Pang
  2017-05-10 13:36 ` Steven Rostedt
@ 2017-05-11 14:20 ` Juri Lelli
  2017-05-11 14:35 ` Daniel Bristot de Oliveira
  2017-06-08  9:29 ` [tip:sched/core] " tip-bot for Xunlei Pang
  3 siblings, 0 replies; 8+ messages in thread
From: Juri Lelli @ 2017-05-11 14:20 UTC (permalink / raw)
  To: Xunlei Pang
  Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, Steven Rostedt,
	Luca Abeni, Daniel Bristot de Oliveira

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-10 13:03 [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks Xunlei Pang
  2017-05-10 13:36 ` Steven Rostedt
  2017-05-11 14:20 ` Juri Lelli
@ 2017-05-11 14:35 ` Daniel Bristot de Oliveira
  2017-05-24  8:51   ` Xunlei Pang
  2017-06-08  9:29 ` [tip:sched/core] " tip-bot for Xunlei Pang
  3 siblings, 1 reply; 8+ messages in thread
From: Daniel Bristot de Oliveira @ 2017-05-11 14:35 UTC (permalink / raw)
  To: Xunlei Pang, linux-kernel
  Cc: Peter Zijlstra, Juri Lelli, Ingo Molnar, Steven Rostedt, Luca Abeni

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-11  1:38   ` Xunlei Pang
@ 2017-05-12  3:35     ` Xunlei Pang
  0 siblings, 0 replies; 8+ messages in thread
From: Xunlei Pang @ 2017-05-12  3:35 UTC (permalink / raw)
  To: Steven Rostedt, Xunlei Pang
  Cc: linux-kernel, Peter Zijlstra, Juri Lelli, Ingo Molnar,
	Luca Abeni, Daniel Bristot de Oliveira

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-11 14:35 ` Daniel Bristot de Oliveira
@ 2017-05-24  8:51   ` Xunlei Pang
  0 siblings, 0 replies; 8+ messages in thread
From: Xunlei Pang @ 2017-05-24  8:51 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Daniel Bristot de Oliveira, Xunlei Pang, linux-kernel,
	Juri Lelli, Ingo Molnar, Steven Rostedt, Luca Abeni

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [tip:sched/core] sched/deadline: Zero out positive runtime after throttling constrained tasks
  2017-05-10 13:03 [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks Xunlei Pang
                   ` (2 preceding siblings ...)
  2017-05-11 14:35 ` Daniel Bristot de Oliveira
@ 2017-06-08  9:29 ` tip-bot for Xunlei Pang
  3 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Xunlei Pang @ 2017-06-08  9:29 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: tglx, efault, juri.lelli, bristot, xlpang, linux-kernel,
	torvalds, hpa, peterz, luca.abeni, rostedt, mingo

Commit-ID:  ae83b56a56f8d9643dedbee86b457fa1c5d42f59
Gitweb:     http://git.kernel.org/tip/ae83b56a56f8d9643dedbee86b457fa1c5d42f59
Author:     Xunlei Pang <xlpang@redhat.com>
AuthorDate: Wed, 10 May 2017 21:03:37 +0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 8 Jun 2017 10:31:58 +0200

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

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.

Signed-off-by: Xunlei Pang <xlpang@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: Juri Lelli <juri.lelli@arm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luca Abeni <luca.abeni@santannapisa.it>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task activated after the deadline)
Link: http://lkml.kernel.org/r/1494421417-27550-1-git-send-email-xlpang@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/sched/deadline.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index e3b25df..54302cf 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -941,6 +941,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;
 	}
 }
 

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-06-08  9:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-10 13:03 [PATCH] sched/deadline: Zero out positive runtime after throttling constrained tasks Xunlei Pang
2017-05-10 13:36 ` Steven Rostedt
2017-05-11  1:38   ` Xunlei Pang
2017-05-12  3:35     ` Xunlei Pang
2017-05-11 14:20 ` Juri Lelli
2017-05-11 14:35 ` Daniel Bristot de Oliveira
2017-05-24  8:51   ` Xunlei Pang
2017-06-08  9:29 ` [tip:sched/core] " tip-bot for Xunlei Pang

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).