Re: [PATCH RT V2] sched: Prevent task state corruption by spurious lock wakeup
From: Thomas Gleixner <hidden>
Date: 2017-06-06 18:36:01
Also in:
lkml
From: Thomas Gleixner <hidden>
Date: 2017-06-06 18:36:01
Also in:
lkml
On Tue, 6 Jun 2017, Peter Zijlstra wrote:
On Tue, Jun 06, 2017 at 02:20:37PM +0200, Thomas Gleixner wrote:quoted
--- a/kernel/sched/core.c +++ b/kernel/sched/core.c@@ -2210,7 +2210,7 @@ EXPORT_SYMBOL(wake_up_process); */ int wake_up_lock_sleeper(struct task_struct *p) { - return try_to_wake_up(p, TASK_ALL, WF_LOCK_SLEEPER); + return try_to_wake_up(p, TASK_UNINTERRUPTIBLE, WF_LOCK_SLEEPER); } int wake_up_state(struct task_struct *p, unsigned int state)Do we want this?
Definitely.
--- Subject: sched: Remove TASK_ALL It's unused: $ git grep "\<TASK_ALL\>" | wc -l 1 And dangerous, kill the bugger. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Thomas Gleixner <redacted>
---diff --git a/include/linux/sched.h b/include/linux/sched.h index 3dfa5f99d6ee..e88aadbe2071 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h@@ -94,7 +94,6 @@ struct task_group; /* Convenience macros for the sake of wake_up(): */ #define TASK_NORMAL (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE) -#define TASK_ALL (TASK_NORMAL | __TASK_STOPPED | __TASK_TRACED) /* get_task_state(): */ #define TASK_REPORT (TASK_RUNNING | TASK_INTERRUPTIBLE | \