All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
@ 2017-10-10  6:44 Byungchul Park
  2017-10-10  6:44 ` [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value Byungchul Park
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Byungchul Park @ 2017-10-10  6:44 UTC (permalink / raw)
  To: peterz, mingo, rostedt; +Cc: linux-kernel, juri.lelli, kernel-team

Changes from v1
 - Enhance commit msg
 - Prevent WARN in cpumask_test_cpu() in cpudl_find() when best_cpu == -1

-----8<-----
>From 7735382d07ae6a61d740ae39ba2ecf169d43b8a2 Mon Sep 17 00:00:00 2001
From: Byungchul Park <byungchul.park@lge.com>
Date: Wed, 22 Mar 2017 14:25:56 +0900
Subject: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up

Current code uses cpudl_maximum() to get the root node's cpu, while it
directly accesses the root node like 'cp->elements[0].dl' to get the
root node's dl. It would be more readible to add a function for the dl,
as well. Added it.

Signed-off-by: Byungchul Park <byungchul.park@lge.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 kernel/sched/cpudeadline.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
index 8d9562d..9f02035 100644
--- a/kernel/sched/cpudeadline.c
+++ b/kernel/sched/cpudeadline.c
@@ -108,11 +108,16 @@ static void cpudl_heapify(struct cpudl *cp, int idx)
 		cpudl_heapify_down(cp, idx);
 }
 
-static inline int cpudl_maximum(struct cpudl *cp)
+static inline int cpudl_maximum_cpu(struct cpudl *cp)
 {
 	return cp->elements[0].cpu;
 }
 
+static inline u64 cpudl_maximum_dl(struct cpudl *cp)
+{
+	return cp->elements[0].dl;
+}
+
 /*
  * cpudl_find - find the best (later-dl) CPU in the system
  * @cp: the cpudl max-heap context
@@ -130,11 +135,11 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
 	    cpumask_and(later_mask, cp->free_cpus, &p->cpus_allowed)) {
 		return 1;
 	} else {
-		int best_cpu = cpudl_maximum(cp);
+		int best_cpu = cpudl_maximum_cpu(cp);
 		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
 
 		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
-		    dl_time_before(dl_se->deadline, cp->elements[0].dl)) {
+		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
 			if (later_mask)
 				cpumask_set_cpu(best_cpu, later_mask);
 
-- 
1.9.1

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

* [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value
  2017-10-10  6:44 [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
@ 2017-10-10  6:44 ` Byungchul Park
  2017-10-12  7:57   ` Byungchul Park
  2017-10-23  8:43 ` [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
  2017-10-27  8:38 ` Byungchul Park
  2 siblings, 1 reply; 9+ messages in thread
From: Byungchul Park @ 2017-10-10  6:44 UTC (permalink / raw)
  To: peterz, mingo, rostedt; +Cc: linux-kernel, juri.lelli, kernel-team

Currently, migrating tasks to cpu0 unconditionally happens when the
heap is empty, since cp->elements[].cpu was initialized to 0(=cpu0).
We have to distinguish between the empty case and cpu0 to avoid the
unnecessary migrantions. Therefore, it has to return an invalid value
e.i. -1 in that case.

Signed-off-by: Byungchul Park <byungchul.park@lge.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 kernel/sched/cpudeadline.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
index 9f02035..bcf903f 100644
--- a/kernel/sched/cpudeadline.c
+++ b/kernel/sched/cpudeadline.c
@@ -138,6 +138,12 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
 		int best_cpu = cpudl_maximum_cpu(cp);
 		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
 
+		/*
+		 * The heap tree is empry for now, just return.
+		 */
+		if (best_cpu == -1)
+			return 0;
+
 		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
 		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
 			if (later_mask)
@@ -265,8 +271,10 @@ int cpudl_init(struct cpudl *cp)
 		return -ENOMEM;
 	}
 
-	for_each_possible_cpu(i)
+	for_each_possible_cpu(i) {
+		cp->elements[i].cpu = -1;
 		cp->elements[i].idx = IDX_INVALID;
+	}
 
 	return 0;
 }
-- 
1.9.1

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

* Re: [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value
  2017-10-10  6:44 ` [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value Byungchul Park
@ 2017-10-12  7:57   ` Byungchul Park
  2017-11-13 12:46     ` Daniel Bristot de Oliveira
  0 siblings, 1 reply; 9+ messages in thread
From: Byungchul Park @ 2017-10-12  7:57 UTC (permalink / raw)
  To: peterz, mingo, rostedt; +Cc: linux-kernel, juri.lelli, kernel-team

On Tue, Oct 10, 2017 at 03:44:04PM +0900, Byungchul Park wrote:
> Currently, migrating tasks to cpu0 unconditionally happens when the
> heap is empty, since cp->elements[].cpu was initialized to 0(=cpu0).
> We have to distinguish between the empty case and cpu0 to avoid the
> unnecessary migrantions. Therefore, it has to return an invalid value
> e.i. -1 in that case.

This patch does what it should obviously do. Could you check this?

> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
>  kernel/sched/cpudeadline.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
> index 9f02035..bcf903f 100644
> --- a/kernel/sched/cpudeadline.c
> +++ b/kernel/sched/cpudeadline.c
> @@ -138,6 +138,12 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
>  		int best_cpu = cpudl_maximum_cpu(cp);
>  		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
>  
> +		/*
> +		 * The heap tree is empry for now, just return.
> +		 */
> +		if (best_cpu == -1)
> +			return 0;
> +
>  		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
>  		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
>  			if (later_mask)
> @@ -265,8 +271,10 @@ int cpudl_init(struct cpudl *cp)
>  		return -ENOMEM;
>  	}
>  
> -	for_each_possible_cpu(i)
> +	for_each_possible_cpu(i) {
> +		cp->elements[i].cpu = -1;
>  		cp->elements[i].idx = IDX_INVALID;
> +	}
>  
>  	return 0;
>  }
> -- 
> 1.9.1

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

* Re: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
  2017-10-10  6:44 [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
  2017-10-10  6:44 ` [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value Byungchul Park
@ 2017-10-23  8:43 ` Byungchul Park
  2017-10-27  8:38 ` Byungchul Park
  2 siblings, 0 replies; 9+ messages in thread
From: Byungchul Park @ 2017-10-23  8:43 UTC (permalink / raw)
  To: peterz, mingo, rostedt; +Cc: linux-kernel, juri.lelli, kernel-team

On Tue, Oct 10, 2017 at 03:44:03PM +0900, Byungchul Park wrote:
> Changes from v1
>  - Enhance commit msg
>  - Prevent WARN in cpumask_test_cpu() in cpudl_find() when best_cpu == -1
> 
> -----8<-----
> >From 7735382d07ae6a61d740ae39ba2ecf169d43b8a2 Mon Sep 17 00:00:00 2001
> From: Byungchul Park <byungchul.park@lge.com>
> Date: Wed, 22 Mar 2017 14:25:56 +0900
> Subject: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
> 
> Current code uses cpudl_maximum() to get the root node's cpu, while it
> directly accesses the root node like 'cp->elements[0].dl' to get the
> root node's dl. It would be more readible to add a function for the dl,
> as well. Added it.

Is there any opinion about this patch? If no, could you consider this?

> 
> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
>  kernel/sched/cpudeadline.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
> index 8d9562d..9f02035 100644
> --- a/kernel/sched/cpudeadline.c
> +++ b/kernel/sched/cpudeadline.c
> @@ -108,11 +108,16 @@ static void cpudl_heapify(struct cpudl *cp, int idx)
>  		cpudl_heapify_down(cp, idx);
>  }
>  
> -static inline int cpudl_maximum(struct cpudl *cp)
> +static inline int cpudl_maximum_cpu(struct cpudl *cp)
>  {
>  	return cp->elements[0].cpu;
>  }
>  
> +static inline u64 cpudl_maximum_dl(struct cpudl *cp)
> +{
> +	return cp->elements[0].dl;
> +}
> +
>  /*
>   * cpudl_find - find the best (later-dl) CPU in the system
>   * @cp: the cpudl max-heap context
> @@ -130,11 +135,11 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
>  	    cpumask_and(later_mask, cp->free_cpus, &p->cpus_allowed)) {
>  		return 1;
>  	} else {
> -		int best_cpu = cpudl_maximum(cp);
> +		int best_cpu = cpudl_maximum_cpu(cp);
>  		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
>  
>  		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
> -		    dl_time_before(dl_se->deadline, cp->elements[0].dl)) {
> +		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
>  			if (later_mask)
>  				cpumask_set_cpu(best_cpu, later_mask);
>  
> -- 
> 1.9.1

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

* Re: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
  2017-10-10  6:44 [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
  2017-10-10  6:44 ` [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value Byungchul Park
  2017-10-23  8:43 ` [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
@ 2017-10-27  8:38 ` Byungchul Park
  2017-11-13 11:00   ` Daniel Bristot de Oliveira
  2 siblings, 1 reply; 9+ messages in thread
From: Byungchul Park @ 2017-10-27  8:38 UTC (permalink / raw)
  To: peterz, mingo, rostedt; +Cc: linux-kernel, juri.lelli, kernel-team

On Tue, Oct 10, 2017 at 03:44:03PM +0900, Byungchul Park wrote:
> Changes from v1
>  - Enhance commit msg
>  - Prevent WARN in cpumask_test_cpu() in cpudl_find() when best_cpu == -1
> 
> -----8<-----
> >From 7735382d07ae6a61d740ae39ba2ecf169d43b8a2 Mon Sep 17 00:00:00 2001
> From: Byungchul Park <byungchul.park@lge.com>
> Date: Wed, 22 Mar 2017 14:25:56 +0900
> Subject: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
> 
> Current code uses cpudl_maximum() to get the root node's cpu, while it
> directly accesses the root node like 'cp->elements[0].dl' to get the
> root node's dl. It would be more readible to add a function for the dl,
> as well. Added it.

Hello everyone,

Could you tell opinions?

> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
>  kernel/sched/cpudeadline.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
> index 8d9562d..9f02035 100644
> --- a/kernel/sched/cpudeadline.c
> +++ b/kernel/sched/cpudeadline.c
> @@ -108,11 +108,16 @@ static void cpudl_heapify(struct cpudl *cp, int idx)
>  		cpudl_heapify_down(cp, idx);
>  }
>  
> -static inline int cpudl_maximum(struct cpudl *cp)
> +static inline int cpudl_maximum_cpu(struct cpudl *cp)
>  {
>  	return cp->elements[0].cpu;
>  }
>  
> +static inline u64 cpudl_maximum_dl(struct cpudl *cp)
> +{
> +	return cp->elements[0].dl;
> +}
> +
>  /*
>   * cpudl_find - find the best (later-dl) CPU in the system
>   * @cp: the cpudl max-heap context
> @@ -130,11 +135,11 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
>  	    cpumask_and(later_mask, cp->free_cpus, &p->cpus_allowed)) {
>  		return 1;
>  	} else {
> -		int best_cpu = cpudl_maximum(cp);
> +		int best_cpu = cpudl_maximum_cpu(cp);
>  		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
>  
>  		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
> -		    dl_time_before(dl_se->deadline, cp->elements[0].dl)) {
> +		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
>  			if (later_mask)
>  				cpumask_set_cpu(best_cpu, later_mask);
>  
> -- 
> 1.9.1

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

* Re: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
  2017-10-27  8:38 ` Byungchul Park
@ 2017-11-13 11:00   ` Daniel Bristot de Oliveira
  0 siblings, 0 replies; 9+ messages in thread
From: Daniel Bristot de Oliveira @ 2017-11-13 11:00 UTC (permalink / raw)
  To: Byungchul Park, peterz, mingo, rostedt
  Cc: linux-kernel, juri.lelli, kernel-team

On 10/27/2017 10:38 AM, Byungchul Park wrote:
> On Tue, Oct 10, 2017 at 03:44:03PM +0900, Byungchul Park wrote:
>> Changes from v1
>>  - Enhance commit msg
>>  - Prevent WARN in cpumask_test_cpu() in cpudl_find() when best_cpu == -1
>>
>> -----8<-----
>> >From 7735382d07ae6a61d740ae39ba2ecf169d43b8a2 Mon Sep 17 00:00:00 2001
>> From: Byungchul Park <byungchul.park@lge.com>
>> Date: Wed, 22 Mar 2017 14:25:56 +0900
>> Subject: [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up
>>
>> Current code uses cpudl_maximum() to get the root node's cpu, while it
>> directly accesses the root node like 'cp->elements[0].dl' to get the
>> root node's dl. It would be more readible to add a function for the dl,
>> as well. Added it.
> 
> Hello everyone,
> 
> Could you tell opinions?
> 
>> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
>> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

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

>> ---
>>  kernel/sched/cpudeadline.c | 11 ++++++++---
>>  1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
>> index 8d9562d..9f02035 100644
>> --- a/kernel/sched/cpudeadline.c
>> +++ b/kernel/sched/cpudeadline.c
>> @@ -108,11 +108,16 @@ static void cpudl_heapify(struct cpudl *cp, int idx)
>>  		cpudl_heapify_down(cp, idx);
>>  }
>>  
>> -static inline int cpudl_maximum(struct cpudl *cp)
>> +static inline int cpudl_maximum_cpu(struct cpudl *cp)
>>  {
>>  	return cp->elements[0].cpu;
>>  }
>>  
>> +static inline u64 cpudl_maximum_dl(struct cpudl *cp)
>> +{
>> +	return cp->elements[0].dl;
>> +}
>> +
>>  /*
>>   * cpudl_find - find the best (later-dl) CPU in the system
>>   * @cp: the cpudl max-heap context
>> @@ -130,11 +135,11 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
>>  	    cpumask_and(later_mask, cp->free_cpus, &p->cpus_allowed)) {
>>  		return 1;
>>  	} else {
>> -		int best_cpu = cpudl_maximum(cp);
>> +		int best_cpu = cpudl_maximum_cpu(cp);
>>  		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
>>  
>>  		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
>> -		    dl_time_before(dl_se->deadline, cp->elements[0].dl)) {
>> +		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
>>  			if (later_mask)
>>  				cpumask_set_cpu(best_cpu, later_mask);
>>  
>> -- 
>> 1.9.1

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

* Re: [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value
  2017-10-12  7:57   ` Byungchul Park
@ 2017-11-13 12:46     ` Daniel Bristot de Oliveira
  2017-11-13 23:30       ` Byungchul Park
  0 siblings, 1 reply; 9+ messages in thread
From: Daniel Bristot de Oliveira @ 2017-11-13 12:46 UTC (permalink / raw)
  To: Byungchul Park, peterz, mingo, rostedt
  Cc: linux-kernel, juri.lelli, kernel-team

On 10/12/2017 09:57 AM, Byungchul Park wrote:
> On Tue, Oct 10, 2017 at 03:44:04PM +0900, Byungchul Park wrote:
>> Currently, migrating tasks to cpu0 unconditionally happens when the
>> heap is empty, since cp->elements[].cpu was initialized to 0(=cpu0).
>> We have to distinguish between the empty case and cpu0 to avoid the
>> unnecessary migrantions. Therefore, it has to return an invalid value

   s/migrantions/migrations/ ?

>> e.i. -1 in that case.
> 
> This patch does what it should obviously do. Could you check this?
> 
>> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
>> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
>> ---
>>  kernel/sched/cpudeadline.c | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
>> index 9f02035..bcf903f 100644
>> --- a/kernel/sched/cpudeadline.c
>> +++ b/kernel/sched/cpudeadline.c
>> @@ -138,6 +138,12 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
>>  		int best_cpu = cpudl_maximum_cpu(cp);
>>  		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
>>  
>> +		/*
>> +		 * The heap tree is empry for now, just return.

		  s/empry/empty/ ?

>> +		 */
>> +		if (best_cpu == -1)
>> +			return 0;
>> +
>>  		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
>>  		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
>>  			if (later_mask)
>> @@ -265,8 +271,10 @@ int cpudl_init(struct cpudl *cp)
>>  		return -ENOMEM;
>>  	}
>>  
>> -	for_each_possible_cpu(i)
>> +	for_each_possible_cpu(i) {
>> +		cp->elements[i].cpu = -1;
>>  		cp->elements[i].idx = IDX_INVALID;
>> +	}
>>  
>>  	return 0;
>>  }
>> -- 
>> 1.9.1

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

* Re: [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value
  2017-11-13 12:46     ` Daniel Bristot de Oliveira
@ 2017-11-13 23:30       ` Byungchul Park
  0 siblings, 0 replies; 9+ messages in thread
From: Byungchul Park @ 2017-11-13 23:30 UTC (permalink / raw)
  To: Daniel Bristot de Oliveira, peterz, mingo, rostedt
  Cc: linux-kernel, juri.lelli, kernel-team

On 11/13/2017 9:46 PM, Daniel Bristot de Oliveira wrote:
> On 10/12/2017 09:57 AM, Byungchul Park wrote:
>> On Tue, Oct 10, 2017 at 03:44:04PM +0900, Byungchul Park wrote:
>>> Currently, migrating tasks to cpu0 unconditionally happens when the
>>> heap is empty, since cp->elements[].cpu was initialized to 0(=cpu0).
>>> We have to distinguish between the empty case and cpu0 to avoid the
>>> unnecessary migrantions. Therefore, it has to return an invalid value
> 
>     s/migrantions/migrations/ ?
> 
>>> e.i. -1 in that case.
>>
>> This patch does what it should obviously do. Could you check this?
>>
>>> Signed-off-by: Byungchul Park <byungchul.park@lge.com>
>>> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
>>> ---
>>>   kernel/sched/cpudeadline.c | 10 +++++++++-
>>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
>>> index 9f02035..bcf903f 100644
>>> --- a/kernel/sched/cpudeadline.c
>>> +++ b/kernel/sched/cpudeadline.c
>>> @@ -138,6 +138,12 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
>>>   		int best_cpu = cpudl_maximum_cpu(cp);
>>>   		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
>>>   
>>> +		/*
>>> +		 * The heap tree is empry for now, just return.
> 
> 		  s/empry/empty/ ?

Hello Daniel,

Thank you very much for pointing out typos.

I shall do spellcheck evetytime submiting patches from now on.

-- 
Thanks,
Byungchul

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

* [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value
  2017-11-02  1:25 Byungchul Park
@ 2017-11-02  1:25 ` Byungchul Park
  0 siblings, 0 replies; 9+ messages in thread
From: Byungchul Park @ 2017-11-02  1:25 UTC (permalink / raw)
  To: peterz, mingo, rostedt
  Cc: tglx, raistlin, linux-kernel, juri.lelli, kernel-team

Currently, migrating tasks to cpu0 unconditionally happens when the
heap is empty, since cp->elements[].cpu was initialized to 0(=cpu0).
We have to distinguish between the empty case and cpu0 to avoid the
unnecessary migrantions. Therefore, it has to return an invalid value
e.i. -1 in that case.

Signed-off-by: Byungchul Park <byungchul.park@lge.com>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 kernel/sched/cpudeadline.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/kernel/sched/cpudeadline.c b/kernel/sched/cpudeadline.c
index 9f02035..bcf903f 100644
--- a/kernel/sched/cpudeadline.c
+++ b/kernel/sched/cpudeadline.c
@@ -138,6 +138,12 @@ int cpudl_find(struct cpudl *cp, struct task_struct *p,
 		int best_cpu = cpudl_maximum_cpu(cp);
 		WARN_ON(best_cpu != -1 && !cpu_present(best_cpu));
 
+		/*
+		 * The heap tree is empry for now, just return.
+		 */
+		if (best_cpu == -1)
+			return 0;
+
 		if (cpumask_test_cpu(best_cpu, &p->cpus_allowed) &&
 		    dl_time_before(dl_se->deadline, cpudl_maximum_dl(cp))) {
 			if (later_mask)
@@ -265,8 +271,10 @@ int cpudl_init(struct cpudl *cp)
 		return -ENOMEM;
 	}
 
-	for_each_possible_cpu(i)
+	for_each_possible_cpu(i) {
+		cp->elements[i].cpu = -1;
 		cp->elements[i].idx = IDX_INVALID;
+	}
 
 	return 0;
 }
-- 
1.9.1

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

end of thread, other threads:[~2017-11-13 23:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-10  6:44 [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
2017-10-10  6:44 ` [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value Byungchul Park
2017-10-12  7:57   ` Byungchul Park
2017-11-13 12:46     ` Daniel Bristot de Oliveira
2017-11-13 23:30       ` Byungchul Park
2017-10-23  8:43 ` [RESEND PATCH v2 1/2] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
2017-10-27  8:38 ` Byungchul Park
2017-11-13 11:00   ` Daniel Bristot de Oliveira
2017-11-02  1:25 Byungchul Park
2017-11-02  1:25 ` [RESEND PATCH v2 2/2] sched/deadline: Initialize cp->elements[].cpu to an invalid value Byungchul Park

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.