All of lore.kernel.org
 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 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.