summaryrefslogtreecommitdiffstats
path: root/kernel/sched
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2021-09-28 14:24:28 +0200
committerPeter Zijlstra <peterz@infradead.org>2021-10-05 15:52:14 +0200
commit670721c7bd2a6e16e40db29b2707a27bdecd6928 (patch)
tree27ead0ffba4532ed1e500925b7d9b1783bd6687f /kernel/sched
parent539fbb5be0da56ffa1434b4f56521a0522bd1d61 (diff)
downloadlinux-670721c7bd2a6e16e40db29b2707a27bdecd6928.tar.bz2
sched: Move kprobes cleanup out of finish_task_switch()
Doing cleanups in the tail of schedule() is a latency punishment for the incoming task. The point of invoking kprobes_task_flush() for a dead task is that the instances are returned and cannot leak when __schedule() is kprobed. Move it into the delayed cleanup. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/20210928122411.537994026@linutronix.de
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/core.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 749284fc3c1f..e33b03c2bb9a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4846,12 +4846,6 @@ static struct rq *finish_task_switch(struct task_struct *prev)
if (prev->sched_class->task_dead)
prev->sched_class->task_dead(prev);
- /*
- * Remove function-return probe instances associated with this
- * task and put them back on the free list.
- */
- kprobe_flush_task(prev);
-
/* Task is done with its stack. */
put_task_stack(prev);