All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sched/core: Remove unnecessary initialization init_idle_bootup_task()
@ 2017-08-04  9:19 Cheng Jian
  2017-08-04  9:43 ` Peter Zijlstra
  2017-08-10 12:09 ` [tip:sched/core] " tip-bot for Cheng Jian
  0 siblings, 2 replies; 3+ messages in thread
From: Cheng Jian @ 2017-08-04  9:19 UTC (permalink / raw)
  To: mingo, peterz, akpm; +Cc: linux-kernel, xiexiuqi, huawei.libin, cj.chengjian

init_idle_bootup_task( ) is called in rest_init( ) to switch
the scheduling class of the boot thread to the idle class

the function only set :
    idle->sched_class = &idle_sched_class;
which has been set in init_idle() called by sched_init()
    /*
     * The idle tasks have their own, simple scheduling class:
     */
    idle->sched_class = &idle_sched_class;

We've already set the boot thread to idle class in
start_kernel()->sched_init()->init_idle()
so it's unnecessary to set it again in
start_kernel()->rest_init()->init_idle_bootup_task()

Signed-off-by: Cheng Jian <cj.chengjian@huawei.com>
Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>
---
 include/linux/sched/task.h | 1 -
 init/main.c                | 1 -
 kernel/sched/core.c        | 5 -----
 3 files changed, 7 deletions(-)

diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
index c97e5f0..79a2a74 100644
--- a/include/linux/sched/task.h
+++ b/include/linux/sched/task.h
@@ -30,7 +30,6 @@
 
 extern asmlinkage void schedule_tail(struct task_struct *prev);
 extern void init_idle(struct task_struct *idle, int cpu);
-extern void init_idle_bootup_task(struct task_struct *idle);
 
 extern int sched_fork(unsigned long clone_flags, struct task_struct *p);
 extern void sched_dead(struct task_struct *p);
diff --git a/init/main.c b/init/main.c
index 052481f..881d624 100644
--- a/init/main.c
+++ b/init/main.c
@@ -430,7 +430,6 @@ static noinline void __ref rest_init(void)
 	 * The boot idle thread must execute schedule()
 	 * at least once to get things moving:
 	 */
-	init_idle_bootup_task(current);
 	schedule_preempt_disabled();
 	/* Call into cpu_idle with preempt disabled */
 	cpu_startup_entry(CPUHP_ONLINE);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 0869b20..7377cac 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5177,11 +5177,6 @@ void show_state_filter(unsigned long state_filter)
 		debug_show_all_locks();
 }
 
-void init_idle_bootup_task(struct task_struct *idle)
-{
-	idle->sched_class = &idle_sched_class;
-}
-
 /**
  * init_idle - set up an idle thread for a given CPU
  * @idle: task in question
-- 
1.8.3.1

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

* Re: [PATCH] sched/core: Remove unnecessary initialization init_idle_bootup_task()
  2017-08-04  9:19 [PATCH] sched/core: Remove unnecessary initialization init_idle_bootup_task() Cheng Jian
@ 2017-08-04  9:43 ` Peter Zijlstra
  2017-08-10 12:09 ` [tip:sched/core] " tip-bot for Cheng Jian
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Zijlstra @ 2017-08-04  9:43 UTC (permalink / raw)
  To: Cheng Jian; +Cc: mingo, akpm, linux-kernel, xiexiuqi, huawei.libin

On Fri, Aug 04, 2017 at 05:19:37PM +0800, Cheng Jian wrote:
> init_idle_bootup_task( ) is called in rest_init( ) to switch
> the scheduling class of the boot thread to the idle class
> 
> the function only set :
>     idle->sched_class = &idle_sched_class;
> which has been set in init_idle() called by sched_init()
>     /*
>      * The idle tasks have their own, simple scheduling class:
>      */
>     idle->sched_class = &idle_sched_class;
> 
> We've already set the boot thread to idle class in
> start_kernel()->sched_init()->init_idle()
> so it's unnecessary to set it again in
> start_kernel()->rest_init()->init_idle_bootup_task()

Yeah, does look a bit redundant. Thanks!

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

* [tip:sched/core] sched/core: Remove unnecessary initialization init_idle_bootup_task()
  2017-08-04  9:19 [PATCH] sched/core: Remove unnecessary initialization init_idle_bootup_task() Cheng Jian
  2017-08-04  9:43 ` Peter Zijlstra
@ 2017-08-10 12:09 ` tip-bot for Cheng Jian
  1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Cheng Jian @ 2017-08-10 12:09 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: akpm, mingo, hpa, xiexiuqi, torvalds, cj.chengjian, huawei.libin,
	tglx, peterz, linux-kernel

Commit-ID:  18f08dae19990f5fffde92e3a63e0d90cda0f1a8
Gitweb:     http://git.kernel.org/tip/18f08dae19990f5fffde92e3a63e0d90cda0f1a8
Author:     Cheng Jian <cj.chengjian@huawei.com>
AuthorDate: Fri, 4 Aug 2017 17:19:37 +0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 10 Aug 2017 12:18:18 +0200

sched/core: Remove unnecessary initialization init_idle_bootup_task()

init_idle_bootup_task( ) is called in rest_init( ) to switch
the scheduling class of the boot thread to the idle class.

the function only sets:

    idle->sched_class = &idle_sched_class;

which has been set in init_idle() called by sched_init():

    /*
     * The idle tasks have their own, simple scheduling class:
     */
    idle->sched_class = &idle_sched_class;

We've already set the boot thread to idle class in
start_kernel()->sched_init()->init_idle()
so it's unnecessary to set it again in
start_kernel()->rest_init()->init_idle_bootup_task()

Signed-off-by: Cheng Jian <cj.chengjian@huawei.com>
Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: <akpm@linux-foundation.org>
Cc: <huawei.libin@huawei.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1501838377-109720-1-git-send-email-cj.chengjian@huawei.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 include/linux/sched/task.h | 1 -
 init/main.c                | 1 -
 kernel/sched/core.c        | 5 -----
 3 files changed, 7 deletions(-)

diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h
index c97e5f0..79a2a74 100644
--- a/include/linux/sched/task.h
+++ b/include/linux/sched/task.h
@@ -30,7 +30,6 @@ extern int lockdep_tasklist_lock_is_held(void);
 
 extern asmlinkage void schedule_tail(struct task_struct *prev);
 extern void init_idle(struct task_struct *idle, int cpu);
-extern void init_idle_bootup_task(struct task_struct *idle);
 
 extern int sched_fork(unsigned long clone_flags, struct task_struct *p);
 extern void sched_dead(struct task_struct *p);
diff --git a/init/main.c b/init/main.c
index 052481f..881d624 100644
--- a/init/main.c
+++ b/init/main.c
@@ -430,7 +430,6 @@ static noinline void __ref rest_init(void)
 	 * The boot idle thread must execute schedule()
 	 * at least once to get things moving:
 	 */
-	init_idle_bootup_task(current);
 	schedule_preempt_disabled();
 	/* Call into cpu_idle with preempt disabled */
 	cpu_startup_entry(CPUHP_ONLINE);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 835a234..6d91c10 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -5177,11 +5177,6 @@ void show_state_filter(unsigned long state_filter)
 		debug_show_all_locks();
 }
 
-void init_idle_bootup_task(struct task_struct *idle)
-{
-	idle->sched_class = &idle_sched_class;
-}
-
 /**
  * init_idle - set up an idle thread for a given CPU
  * @idle: task in question

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

end of thread, other threads:[~2017-08-10 12:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-04  9:19 [PATCH] sched/core: Remove unnecessary initialization init_idle_bootup_task() Cheng Jian
2017-08-04  9:43 ` Peter Zijlstra
2017-08-10 12:09 ` [tip:sched/core] " tip-bot for Cheng Jian

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.