diff options
author | Peter Zijlstra <peterz@infradead.org> | 2016-09-20 16:34:51 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-09-30 05:03:29 -0400 |
commit | 9148a3a10e0b74c5722174a0bbef16d821f8a48b (patch) | |
tree | 7852c5c88abeccb66167da1c4dc4da8e4633be67 | |
parent | 49bd21efe7fc84f9c82c8475b8ff6f8b865b1692 (diff) |
sched/debug: Add SCHED_WARN_ON()
Provide SCHED_WARN_ON as wrapper for WARN_ON_ONCE() to avoid
CONFIG_SCHED_DEBUG wrappery.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | kernel/sched/fair.c | 8 | ||||
-rw-r--r-- | kernel/sched/sched.h | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 87caf2bd26f0..a6789485fcae 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -262,9 +262,7 @@ static inline struct rq *rq_of(struct cfs_rq *cfs_rq) | |||
262 | 262 | ||
263 | static inline struct task_struct *task_of(struct sched_entity *se) | 263 | static inline struct task_struct *task_of(struct sched_entity *se) |
264 | { | 264 | { |
265 | #ifdef CONFIG_SCHED_DEBUG | 265 | SCHED_WARN_ON(!entity_is_task(se)); |
266 | WARN_ON_ONCE(!entity_is_task(se)); | ||
267 | #endif | ||
268 | return container_of(se, struct task_struct, se); | 266 | return container_of(se, struct task_struct, se); |
269 | } | 267 | } |
270 | 268 | ||
@@ -2369,7 +2367,7 @@ void task_numa_work(struct callback_head *work) | |||
2369 | unsigned long nr_pte_updates = 0; | 2367 | unsigned long nr_pte_updates = 0; |
2370 | long pages, virtpages; | 2368 | long pages, virtpages; |
2371 | 2369 | ||
2372 | WARN_ON_ONCE(p != container_of(work, struct task_struct, numa_work)); | 2370 | SCHED_WARN_ON(p != container_of(work, struct task_struct, numa_work)); |
2373 | 2371 | ||
2374 | work->next = work; /* protect against double add */ | 2372 | work->next = work; /* protect against double add */ |
2375 | /* | 2373 | /* |
@@ -4474,7 +4472,7 @@ static void hrtick_start_fair(struct rq *rq, struct task_struct *p) | |||
4474 | struct sched_entity *se = &p->se; | 4472 | struct sched_entity *se = &p->se; |
4475 | struct cfs_rq *cfs_rq = cfs_rq_of(se); | 4473 | struct cfs_rq *cfs_rq = cfs_rq_of(se); |
4476 | 4474 | ||
4477 | WARN_ON(task_rq(p) != rq); | 4475 | SCHED_WARN_ON(task_rq(p) != rq); |
4478 | 4476 | ||
4479 | if (rq->cfs.h_nr_running > 1) { | 4477 | if (rq->cfs.h_nr_running > 1) { |
4480 | u64 slice = sched_slice(cfs_rq, se); | 4478 | u64 slice = sched_slice(cfs_rq, se); |
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index fc6ae04ec080..5489d07a4643 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h | |||
@@ -15,6 +15,12 @@ | |||
15 | #include "cpudeadline.h" | 15 | #include "cpudeadline.h" |
16 | #include "cpuacct.h" | 16 | #include "cpuacct.h" |
17 | 17 | ||
18 | #ifdef CONFIG_SCHED_DEBUG | ||
19 | #define SCHED_WARN_ON(x) WARN_ONCE(x, #x) | ||
20 | #else | ||
21 | #define SCHED_WARN_ON(x) ((void)(x)) | ||
22 | #endif | ||
23 | |||
18 | struct rq; | 24 | struct rq; |
19 | struct cpuidle_state; | 25 | struct cpuidle_state; |
20 | 26 | ||
@@ -1309,7 +1315,7 @@ static inline void idle_set_state(struct rq *rq, | |||
1309 | 1315 | ||
1310 | static inline struct cpuidle_state *idle_get_state(struct rq *rq) | 1316 | static inline struct cpuidle_state *idle_get_state(struct rq *rq) |
1311 | { | 1317 | { |
1312 | WARN_ON(!rcu_read_lock_held()); | 1318 | SCHED_WARN_ON(!rcu_read_lock_held()); |
1313 | return rq->idle_state; | 1319 | return rq->idle_state; |
1314 | } | 1320 | } |
1315 | #else | 1321 | #else |