All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] sched: Clean up newidle_balance() and pick_next_task()
@ 2020-04-19 16:31 Chen Yu
  2020-04-19 16:31 ` [PATCH 1/2] sched: Make newidle_balance() static again Chen Yu
  2020-04-19 16:31 ` [PATCH 2/2] sched: Extract the task putting code from pick_next_task() Chen Yu
  0 siblings, 2 replies; 12+ messages in thread
From: Chen Yu @ 2020-04-19 16:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Juri Lelli, Vincent Guittot,
	Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman,
	Chen Yu

As Peter suggested, here are two minor code clean up in the scheduler:
1. turn newidle_balance() into a static function.
2. code extraction in pick_next_task() for future re-use.

Chen Yu (2):
  sched: Make newidle_balance() static again
  sched: Extract the code to put previous task in pick_next_task()

 kernel/sched/core.c  | 39 +++++++++++++++++++++++----------------
 kernel/sched/fair.c  |  4 +++-
 kernel/sched/sched.h |  4 ----
 3 files changed, 26 insertions(+), 21 deletions(-)

-- 
2.20.1


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

* [PATCH 1/2] sched: Make newidle_balance() static again
  2020-04-19 16:31 [PATCH 0/2] sched: Clean up newidle_balance() and pick_next_task() Chen Yu
@ 2020-04-19 16:31 ` Chen Yu
  2020-04-21 19:22   ` kbuild test robot
  2020-04-19 16:31 ` [PATCH 2/2] sched: Extract the task putting code from pick_next_task() Chen Yu
  1 sibling, 1 reply; 12+ messages in thread
From: Chen Yu @ 2020-04-19 16:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Juri Lelli, Vincent Guittot,
	Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman,
	Chen Yu

After Commit 6e2df0581f56 ("sched: Fix pick_next_task() vs 'change'
pattern race"), there is no need to expose newidle_balance() as it
is only used within fair.c file. Change this function back to static again.

No functional change.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
---
 kernel/sched/fair.c  | 4 +++-
 kernel/sched/sched.h | 4 ----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 02f323b85b6d..da7a505c28a6 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -86,6 +86,8 @@ static unsigned int normalized_sysctl_sched_wakeup_granularity	= 1000000UL;
 
 const_debug unsigned int sysctl_sched_migration_cost	= 500000UL;
 
+static int newidle_balance(struct rq *this_rq, struct rq_flags *rf);
+
 int sched_thermal_decay_shift;
 static int __init setup_sched_thermal_decay_shift(char *str)
 {
@@ -10425,7 +10427,7 @@ static inline void nohz_newidle_balance(struct rq *this_rq) { }
  *     0 - failed, no new tasks
  *   > 0 - success, new (fair) tasks present
  */
-int newidle_balance(struct rq *this_rq, struct rq_flags *rf)
+static int newidle_balance(struct rq *this_rq, struct rq_flags *rf)
 {
 	unsigned long next_balance = jiffies + HZ;
 	int this_cpu = this_rq->cpu;
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index db3a57675ccf..be83f88495fb 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1504,14 +1504,10 @@ static inline void unregister_sched_domain_sysctl(void)
 }
 #endif
 
-extern int newidle_balance(struct rq *this_rq, struct rq_flags *rf);
-
 #else
 
 static inline void sched_ttwu_pending(void) { }
 
-static inline int newidle_balance(struct rq *this_rq, struct rq_flags *rf) { return 0; }
-
 #endif /* CONFIG_SMP */
 
 #include "stats.h"
-- 
2.20.1


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

* [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-19 16:31 [PATCH 0/2] sched: Clean up newidle_balance() and pick_next_task() Chen Yu
  2020-04-19 16:31 ` [PATCH 1/2] sched: Make newidle_balance() static again Chen Yu
@ 2020-04-19 16:31 ` Chen Yu
  2020-04-20 22:32   ` Steven Rostedt
  1 sibling, 1 reply; 12+ messages in thread
From: Chen Yu @ 2020-04-19 16:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: Peter Zijlstra, Ingo Molnar, Juri Lelli, Vincent Guittot,
	Dietmar Eggemann, Steven Rostedt, Ben Segall, Mel Gorman,
	Chen Yu

Introduce a new function finish_prev_task() to do the balance
when necessary, and then put previous task back to the run queue.
This function is extracted from pick_next_task() to prepare for
future usage by other type of task picking logic.

No functional change.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
---
 kernel/sched/core.c | 39 +++++++++++++++++++++++----------------
 1 file changed, 23 insertions(+), 16 deletions(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 3a61a3b8eaa9..bf59a5cf030c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3904,6 +3904,28 @@ static inline void schedule_debug(struct task_struct *prev, bool preempt)
 	schedstat_inc(this_rq()->sched_count);
 }
 
+static void finish_prev_task(struct rq *rq, struct task_struct *prev,
+			     struct rq_flags *rf)
+{
+	const struct sched_class *class;
+#ifdef CONFIG_SMP
+	/*
+	 * We must do the balancing pass before put_next_task(), such
+	 * that when we release the rq->lock the task is in the same
+	 * state as before we took rq->lock.
+	 *
+	 * We can terminate the balance pass as soon as we know there is
+	 * a runnable task of @class priority or higher.
+	 */
+	for_class_range(class, prev->sched_class, &idle_sched_class) {
+		if (class->balance(rq, prev, rf))
+			break;
+	}
+#endif
+
+	put_prev_task(rq, prev);
+}
+
 /*
  * Pick up the highest-prio task:
  */
@@ -3937,22 +3959,7 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
 	}
 
 restart:
-#ifdef CONFIG_SMP
-	/*
-	 * We must do the balancing pass before put_next_task(), such
-	 * that when we release the rq->lock the task is in the same
-	 * state as before we took rq->lock.
-	 *
-	 * We can terminate the balance pass as soon as we know there is
-	 * a runnable task of @class priority or higher.
-	 */
-	for_class_range(class, prev->sched_class, &idle_sched_class) {
-		if (class->balance(rq, prev, rf))
-			break;
-	}
-#endif
-
-	put_prev_task(rq, prev);
+	finish_prev_task(rq, prev, rf);
 
 	for_each_class(class) {
 		p = class->pick_next_task(rq);
-- 
2.20.1


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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-19 16:31 ` [PATCH 2/2] sched: Extract the task putting code from pick_next_task() Chen Yu
@ 2020-04-20 22:32   ` Steven Rostedt
  2020-04-20 22:55     ` Valentin Schneider
  2020-04-21  8:28     ` Chen Yu
  0 siblings, 2 replies; 12+ messages in thread
From: Steven Rostedt @ 2020-04-20 22:32 UTC (permalink / raw)
  To: Chen Yu
  Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Ben Segall, Mel Gorman

On Mon, 20 Apr 2020 00:31:52 +0800
Chen Yu <yu.c.chen@intel.com> wrote:

> Introduce a new function finish_prev_task() to do the balance
> when necessary, and then put previous task back to the run queue.
> This function is extracted from pick_next_task() to prepare for
> future usage by other type of task picking logic.
> 
> No functional change.
> 
> Suggested-by: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Chen Yu <yu.c.chen@intel.com>
> ---
>  kernel/sched/core.c | 39 +++++++++++++++++++++++----------------
>  1 file changed, 23 insertions(+), 16 deletions(-)
> 
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 3a61a3b8eaa9..bf59a5cf030c 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3904,6 +3904,28 @@ static inline void schedule_debug(struct task_struct *prev, bool preempt)
>  	schedstat_inc(this_rq()->sched_count);
>  }
>  
> +static void finish_prev_task(struct rq *rq, struct task_struct *prev,
> +			     struct rq_flags *rf)
> +{
> +	const struct sched_class *class;
> +#ifdef CONFIG_SMP
> +	/*
> +	 * We must do the balancing pass before put_next_task(), such

I know this is just a cut and paste move, but I'm thinking that this
comment is wrong. Shouldn't this be "put_prev_task()" as we have no
"put_next_task()" function.


> +	 * that when we release the rq->lock the task is in the same
> +	 * state as before we took rq->lock.
> +	 *
> +	 * We can terminate the balance pass as soon as we know there is
> +	 * a runnable task of @class priority or higher.
> +	 */
> +	for_class_range(class, prev->sched_class, &idle_sched_class) {
> +		if (class->balance(rq, prev, rf))
> +			break;
> +	}
> +#endif
> +
> +	put_prev_task(rq, prev);
> +}
> +
>  /*
>   * Pick up the highest-prio task:
>   */
> @@ -3937,22 +3959,7 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
>  	}
>  
>  restart:
> -#ifdef CONFIG_SMP
> -	/*
> -	 * We must do the balancing pass before put_next_task(), such
> -	 * that when we release the rq->lock the task is in the same
> -	 * state as before we took rq->lock.
> -	 *
> -	 * We can terminate the balance pass as soon as we know there is
> -	 * a runnable task of @class priority or higher.
> -	 */
> -	for_class_range(class, prev->sched_class, &idle_sched_class) {
> -		if (class->balance(rq, prev, rf))
> -			break;
> -	}
> -#endif
> -
> -	put_prev_task(rq, prev);
> +	finish_prev_task(rq, prev, rf);

I'm not sure I like the name of this function. Perhaps
"balance_and_put_prev_task()"? Something more in kind to what the function
does.

-- Steve

>  
>  	for_each_class(class) {
>  		p = class->pick_next_task(rq);


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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-20 22:32   ` Steven Rostedt
@ 2020-04-20 22:55     ` Valentin Schneider
  2020-04-20 23:13       ` Peter Zijlstra
  2020-04-21  8:28     ` Chen Yu
  1 sibling, 1 reply; 12+ messages in thread
From: Valentin Schneider @ 2020-04-20 22:55 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Chen Yu, linux-kernel, Peter Zijlstra, Ingo Molnar, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Ben Segall, Mel Gorman


(There's a v2 at cover.1587393807.git.yu.c.chen@intel.com but I think this
still applies)

On 20/04/20 23:32, Steven Rostedt wrote:
>> @@ -3904,6 +3904,28 @@ static inline void schedule_debug(struct task_struct *prev, bool preempt)
>>      schedstat_inc(this_rq()->sched_count);
>>  }
>>
>> +static void finish_prev_task(struct rq *rq, struct task_struct *prev,
>> +			     struct rq_flags *rf)
>> +{
>> +	const struct sched_class *class;
>> +#ifdef CONFIG_SMP
>> +	/*
>> +	 * We must do the balancing pass before put_next_task(), such
>
> I know this is just a cut and paste move, but I'm thinking that this
> comment is wrong. Shouldn't this be "put_prev_task()" as we have no
> "put_next_task()" function.
>

Oh, I think you're right.

>
>> +	 * that when we release the rq->lock the task is in the same
>> +	 * state as before we took rq->lock.
>> +	 *
>> +	 * We can terminate the balance pass as soon as we know there is
>> +	 * a runnable task of @class priority or higher.
>> +	 */
>> +	for_class_range(class, prev->sched_class, &idle_sched_class) {
>> +		if (class->balance(rq, prev, rf))
>> +			break;
>> +	}
>> +#endif
>> +
>> +	put_prev_task(rq, prev);
>> +}
>> +
>>  /*
>>   * Pick up the highest-prio task:
>>   */
>> @@ -3937,22 +3959,7 @@ pick_next_task(struct rq *rq, struct task_struct *prev, struct rq_flags *rf)
>>      }
>>
>>  restart:
>> -#ifdef CONFIG_SMP
>> -	/*
>> -	 * We must do the balancing pass before put_next_task(), such
>> -	 * that when we release the rq->lock the task is in the same
>> -	 * state as before we took rq->lock.
>> -	 *
>> -	 * We can terminate the balance pass as soon as we know there is
>> -	 * a runnable task of @class priority or higher.
>> -	 */
>> -	for_class_range(class, prev->sched_class, &idle_sched_class) {
>> -		if (class->balance(rq, prev, rf))
>> -			break;
>> -	}
>> -#endif
>> -
>> -	put_prev_task(rq, prev);
>> +	finish_prev_task(rq, prev, rf);
>
> I'm not sure I like the name of this function. Perhaps
> "balance_and_put_prev_task()"? Something more in kind to what the function
> does.
>

The 'finish' thing isn't too far from the truth; it's the last thing we
need to do with the prev task (in terms of sched bookkeeping, I mean) -
and in Chen's defence ISTR Peter suggested that name.

Seeing as it's a "supercharged" put_prev_task(), I could live with the
marginally shorter "put_prev_task_balance()".

> -- Steve
>
>>
>>      for_each_class(class) {
>>              p = class->pick_next_task(rq);

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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-20 22:55     ` Valentin Schneider
@ 2020-04-20 23:13       ` Peter Zijlstra
  2020-04-21  2:23         ` Steven Rostedt
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Zijlstra @ 2020-04-20 23:13 UTC (permalink / raw)
  To: Valentin Schneider
  Cc: Steven Rostedt, Chen Yu, linux-kernel, Ingo Molnar, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Ben Segall, Mel Gorman

On Mon, Apr 20, 2020 at 11:55:21PM +0100, Valentin Schneider wrote:

> >> +	finish_prev_task(rq, prev, rf);
> >
> > I'm not sure I like the name of this function. Perhaps
> > "balance_and_put_prev_task()"? Something more in kind to what the function
> > does.
> >
> 
> The 'finish' thing isn't too far from the truth; it's the last thing we
> need to do with the prev task (in terms of sched bookkeeping, I mean) -
> and in Chen's defence ISTR Peter suggested that name.
> 
> Seeing as it's a "supercharged" put_prev_task(), I could live with the
> marginally shorter "put_prev_task_balance()".

What Valentin said; it's the last put we do before picking a new task.
Also, I don't like long names. That said, I'm open to short and
appropriate suggestions.

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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-20 23:13       ` Peter Zijlstra
@ 2020-04-21  2:23         ` Steven Rostedt
  2020-04-21  7:42           ` Vincent Guittot
  0 siblings, 1 reply; 12+ messages in thread
From: Steven Rostedt @ 2020-04-21  2:23 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Valentin Schneider, Chen Yu, linux-kernel, Ingo Molnar,
	Juri Lelli, Vincent Guittot, Dietmar Eggemann, Ben Segall,
	Mel Gorman

On Tue, 21 Apr 2020 01:13:55 +0200
Peter Zijlstra <peterz@infradead.org> wrote:

> > The 'finish' thing isn't too far from the truth; it's the last thing we
> > need to do with the prev task (in terms of sched bookkeeping, I mean) -
> > and in Chen's defence ISTR Peter suggested that name.
> > 
> > Seeing as it's a "supercharged" put_prev_task(), I could live with the
> > marginally shorter "put_prev_task_balance()".  
> 
> What Valentin said; it's the last put we do before picking a new task.
> Also, I don't like long names. That said, I'm open to short and
> appropriate suggestions.

I wont bikeshed this too much.

Is the "finish" more appropriate with the other use cases that are
coming. I do like that "put_prev_task_balance()" too.

-- Steve

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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-21  2:23         ` Steven Rostedt
@ 2020-04-21  7:42           ` Vincent Guittot
  2020-04-21  8:38             ` Chen Yu
  0 siblings, 1 reply; 12+ messages in thread
From: Vincent Guittot @ 2020-04-21  7:42 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Peter Zijlstra, Valentin Schneider, Chen Yu, linux-kernel,
	Ingo Molnar, Juri Lelli, Dietmar Eggemann, Ben Segall,
	Mel Gorman

On Tue, 21 Apr 2020 at 04:23, Steven Rostedt <rostedt@goodmis.org> wrote:
>
> On Tue, 21 Apr 2020 01:13:55 +0200
> Peter Zijlstra <peterz@infradead.org> wrote:
>
> > > The 'finish' thing isn't too far from the truth; it's the last thing we
> > > need to do with the prev task (in terms of sched bookkeeping, I mean) -
> > > and in Chen's defence ISTR Peter suggested that name.
> > >
> > > Seeing as it's a "supercharged" put_prev_task(), I could live with the
> > > marginally shorter "put_prev_task_balance()".
> >
> > What Valentin said; it's the last put we do before picking a new task.
> > Also, I don't like long names. That said, I'm open to short and
> > appropriate suggestions.
>
> I wont bikeshed this too much.
>
> Is the "finish" more appropriate with the other use cases that are
> coming. I do like that "put_prev_task_balance()" too.

This name looks reasonnable

>
> -- Steve

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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-20 22:32   ` Steven Rostedt
  2020-04-20 22:55     ` Valentin Schneider
@ 2020-04-21  8:28     ` Chen Yu
  1 sibling, 0 replies; 12+ messages in thread
From: Chen Yu @ 2020-04-21  8:28 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, Juri Lelli,
	Vincent Guittot, Dietmar Eggemann, Ben Segall, Mel Gorman

On Mon, Apr 20, 2020 at 06:32:32PM -0400, Steven Rostedt wrote:
> On Mon, 20 Apr 2020 00:31:52 +0800
> Chen Yu <yu.c.chen@intel.com> wrote:
> 
> > Introduce a new function finish_prev_task() to do the balance
> > when necessary, and then put previous task back to the run queue.
> > This function is extracted from pick_next_task() to prepare for
> > future usage by other type of task picking logic.
> > 
> > No functional change.
> > 
> > Suggested-by: Peter Zijlstra <peterz@infradead.org>
> > Signed-off-by: Chen Yu <yu.c.chen@intel.com>
> > ---
> >  kernel/sched/core.c | 39 +++++++++++++++++++++++----------------
> >  1 file changed, 23 insertions(+), 16 deletions(-)
> > 
> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> > index 3a61a3b8eaa9..bf59a5cf030c 100644
> > --- a/kernel/sched/core.c
> > +++ b/kernel/sched/core.c
> > @@ -3904,6 +3904,28 @@ static inline void schedule_debug(struct task_struct *prev, bool preempt)
> >  	schedstat_inc(this_rq()->sched_count);
> >  }
> >  
> > +static void finish_prev_task(struct rq *rq, struct task_struct *prev,
> > +			     struct rq_flags *rf)
> > +{
> > +	const struct sched_class *class;
> > +#ifdef CONFIG_SMP
> > +	/*
> > +	 * We must do the balancing pass before put_next_task(), such
> 
> I know this is just a cut and paste move, but I'm thinking that this
> comment is wrong. Shouldn't this be "put_prev_task()" as we have no
> "put_next_task()" function.
> 
>
Okay, I'll fix it in v3.
> > +	finish_prev_task(rq, prev, rf);
> 
> I'm not sure I like the name of this function. Perhaps
> "balance_and_put_prev_task()"? Something more in kind to what the function
> does.
>
Per the discussion, I think put_prev_task_balance() might be an
appropriate one.

Thanks,
Chenyu
> -- Steve
> 
> >  
> >  	for_each_class(class) {
> >  		p = class->pick_next_task(rq);
> 

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

* Re: [PATCH 2/2] sched: Extract the task putting code from pick_next_task()
  2020-04-21  7:42           ` Vincent Guittot
@ 2020-04-21  8:38             ` Chen Yu
  0 siblings, 0 replies; 12+ messages in thread
From: Chen Yu @ 2020-04-21  8:38 UTC (permalink / raw)
  To: Vincent Guittot
  Cc: Steven Rostedt, Peter Zijlstra, Valentin Schneider, linux-kernel,
	Ingo Molnar, Juri Lelli, Dietmar Eggemann, Ben Segall,
	Mel Gorman

On Tue, Apr 21, 2020 at 09:42:26AM +0200, Vincent Guittot wrote:
> On Tue, 21 Apr 2020 at 04:23, Steven Rostedt <rostedt@goodmis.org> wrote:
> >
> > On Tue, 21 Apr 2020 01:13:55 +0200
> > Peter Zijlstra <peterz@infradead.org> wrote:
> >
> > > > The 'finish' thing isn't too far from the truth; it's the last thing we
> > > > need to do with the prev task (in terms of sched bookkeeping, I mean) -
> > > > and in Chen's defence ISTR Peter suggested that name.
> > > >
> > > > Seeing as it's a "supercharged" put_prev_task(), I could live with the
> > > > marginally shorter "put_prev_task_balance()".
> > >
> > > What Valentin said; it's the last put we do before picking a new task.
> > > Also, I don't like long names. That said, I'm open to short and
> > > appropriate suggestions.
> >
> > I wont bikeshed this too much.
> >
> > Is the "finish" more appropriate with the other use cases that are
> > coming. I do like that "put_prev_task_balance()" too.
> 
> This name looks reasonnable
>
Okay, I'll change it to this name.

Thanks,
Chenyu
> >
> > -- Steve

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

* Re: [PATCH 1/2] sched: Make newidle_balance() static again
  2020-04-19 16:31 ` [PATCH 1/2] sched: Make newidle_balance() static again Chen Yu
@ 2020-04-21 19:22   ` kbuild test robot
  2020-04-22  2:53     ` Chen, Yu C
  0 siblings, 1 reply; 12+ messages in thread
From: kbuild test robot @ 2020-04-21 19:22 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1582 bytes --]

Hi Chen,

I love your patch! Yet something to improve:

[auto build test ERROR on tip/sched/core]
[also build test ERROR on tip/auto-latest linus/master v5.7-rc2 next-20200421]
[cannot apply to linux/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Chen-Yu/sched-Clean-up-newidle_balance-and-pick_next_task/20200421-161412
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8f3d9f354286745c751374f5f1fcafee6b3f3136
config: nds32-defconfig (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=nds32 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   nds32le-linux-ld: kernel/sched/fair.o: in function `pick_next_task_fair':
   fair.c:(.text+0x1384): undefined reference to `newidle_balance'
>> nds32le-linux-ld: fair.c:(.text+0x1388): undefined reference to `newidle_balance'

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 11069 bytes --]

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

* Re: [PATCH 1/2] sched: Make newidle_balance() static again
  2020-04-21 19:22   ` kbuild test robot
@ 2020-04-22  2:53     ` Chen, Yu C
  0 siblings, 0 replies; 12+ messages in thread
From: Chen, Yu C @ 2020-04-22  2:53 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 1967 bytes --]

Hi LKP,
This has been fixed according to your previous report in Peter's branch.
https://lore.kernel.org/patchwork/patch/1228070/

Thanks,
Chenyu


-----Original Message-----
From: lkp <lkp@intel.com> 
Sent: Wednesday, April 22, 2020 3:23 AM
To: Chen, Yu C <yu.c.chen@intel.com>
Cc: kbuild-all(a)lists.01.org
Subject: Re: [PATCH 1/2] sched: Make newidle_balance() static again

Hi Chen,

I love your patch! Yet something to improve:

[auto build test ERROR on tip/sched/core] [also build test ERROR on tip/auto-latest linus/master v5.7-rc2 next-20200421] [cannot apply to linux/master] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Chen-Yu/sched-Clean-up-newidle_balance-and-pick_next_task/20200421-161412
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8f3d9f354286745c751374f5f1fcafee6b3f3136
config: nds32-defconfig (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=nds32 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   nds32le-linux-ld: kernel/sched/fair.o: in function `pick_next_task_fair':
   fair.c:(.text+0x1384): undefined reference to `newidle_balance'
>> nds32le-linux-ld: fair.c:(.text+0x1388): undefined reference to `newidle_balance'

---
0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

end of thread, other threads:[~2020-04-22  2:53 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-19 16:31 [PATCH 0/2] sched: Clean up newidle_balance() and pick_next_task() Chen Yu
2020-04-19 16:31 ` [PATCH 1/2] sched: Make newidle_balance() static again Chen Yu
2020-04-21 19:22   ` kbuild test robot
2020-04-22  2:53     ` Chen, Yu C
2020-04-19 16:31 ` [PATCH 2/2] sched: Extract the task putting code from pick_next_task() Chen Yu
2020-04-20 22:32   ` Steven Rostedt
2020-04-20 22:55     ` Valentin Schneider
2020-04-20 23:13       ` Peter Zijlstra
2020-04-21  2:23         ` Steven Rostedt
2020-04-21  7:42           ` Vincent Guittot
2020-04-21  8:38             ` Chen Yu
2020-04-21  8:28     ` Chen Yu

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.