diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-16 17:47:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-05-16 17:47:16 -0400 |
commit | 825a3b2605c3aa193e0075d0f9c72e33c17ab16a (patch) | |
tree | e8665c4cc20076ae53165475839d36b4bc641cd3 /include/linux/lockdep.h | |
parent | cf6ed9a6682d3f171cf9550d4bbe0ef31b768a7e (diff) | |
parent | ef0491ea17f8019821c7e9c8e801184ecf17f85a (diff) |
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar:
- massive CPU hotplug rework (Thomas Gleixner)
- improve migration fairness (Peter Zijlstra)
- CPU load calculation updates/cleanups (Yuyang Du)
- cpufreq updates (Steve Muckle)
- nohz optimizations (Frederic Weisbecker)
- switch_mm() micro-optimization on x86 (Andy Lutomirski)
- ... lots of other enhancements, fixes and cleanups.
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits)
ARM: Hide finish_arch_post_lock_switch() from modules
sched/core: Provide a tsk_nr_cpus_allowed() helper
sched/core: Use tsk_cpus_allowed() instead of accessing ->cpus_allowed
sched/loadavg: Fix loadavg artifacts on fully idle and on fully loaded systems
sched/fair: Correct unit of load_above_capacity
sched/fair: Clean up scale confusion
sched/nohz: Fix affine unpinned timers mess
sched/fair: Fix fairness issue on migration
sched/core: Kill sched_class::task_waking to clean up the migration logic
sched/fair: Prepare to fix fairness problems on migration
sched/fair: Move record_wakee()
sched/core: Fix comment typo in wake_q_add()
sched/core: Remove unused variable
sched: Make hrtick_notifier an explicit call
sched/fair: Make ilb_notifier an explicit call
sched/hotplug: Make activate() the last hotplug step
sched/hotplug: Move migration CPU_DYING to sched_cpu_dying()
sched/migration: Move CPU_ONLINE into scheduler state
sched/migration: Move calc_load_migrate() into CPU_DYING
sched/migration: Move prepare transition to SCHED_STARTING state
...
Diffstat (limited to 'include/linux/lockdep.h')
-rw-r--r-- | include/linux/lockdep.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index f75222ea7f16..eabe0138eb06 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h | |||
@@ -356,8 +356,13 @@ extern void lockdep_set_current_reclaim_state(gfp_t gfp_mask); | |||
356 | extern void lockdep_clear_current_reclaim_state(void); | 356 | extern void lockdep_clear_current_reclaim_state(void); |
357 | extern void lockdep_trace_alloc(gfp_t mask); | 357 | extern void lockdep_trace_alloc(gfp_t mask); |
358 | 358 | ||
359 | extern void lock_pin_lock(struct lockdep_map *lock); | 359 | struct pin_cookie { unsigned int val; }; |
360 | extern void lock_unpin_lock(struct lockdep_map *lock); | 360 | |
361 | #define NIL_COOKIE (struct pin_cookie){ .val = 0U, } | ||
362 | |||
363 | extern struct pin_cookie lock_pin_lock(struct lockdep_map *lock); | ||
364 | extern void lock_repin_lock(struct lockdep_map *lock, struct pin_cookie); | ||
365 | extern void lock_unpin_lock(struct lockdep_map *lock, struct pin_cookie); | ||
361 | 366 | ||
362 | # define INIT_LOCKDEP .lockdep_recursion = 0, .lockdep_reclaim_gfp = 0, | 367 | # define INIT_LOCKDEP .lockdep_recursion = 0, .lockdep_reclaim_gfp = 0, |
363 | 368 | ||
@@ -373,8 +378,9 @@ extern void lock_unpin_lock(struct lockdep_map *lock); | |||
373 | 378 | ||
374 | #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion) | 379 | #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion) |
375 | 380 | ||
376 | #define lockdep_pin_lock(l) lock_pin_lock(&(l)->dep_map) | 381 | #define lockdep_pin_lock(l) lock_pin_lock(&(l)->dep_map) |
377 | #define lockdep_unpin_lock(l) lock_unpin_lock(&(l)->dep_map) | 382 | #define lockdep_repin_lock(l,c) lock_repin_lock(&(l)->dep_map, (c)) |
383 | #define lockdep_unpin_lock(l,c) lock_unpin_lock(&(l)->dep_map, (c)) | ||
378 | 384 | ||
379 | #else /* !CONFIG_LOCKDEP */ | 385 | #else /* !CONFIG_LOCKDEP */ |
380 | 386 | ||
@@ -427,8 +433,13 @@ struct lock_class_key { }; | |||
427 | 433 | ||
428 | #define lockdep_recursing(tsk) (0) | 434 | #define lockdep_recursing(tsk) (0) |
429 | 435 | ||
430 | #define lockdep_pin_lock(l) do { (void)(l); } while (0) | 436 | struct pin_cookie { }; |
431 | #define lockdep_unpin_lock(l) do { (void)(l); } while (0) | 437 | |
438 | #define NIL_COOKIE (struct pin_cookie){ } | ||
439 | |||
440 | #define lockdep_pin_lock(l) ({ struct pin_cookie cookie; cookie; }) | ||
441 | #define lockdep_repin_lock(l, c) do { (void)(l); (void)(c); } while (0) | ||
442 | #define lockdep_unpin_lock(l, c) do { (void)(l); (void)(c); } while (0) | ||
432 | 443 | ||
433 | #endif /* !LOCKDEP */ | 444 | #endif /* !LOCKDEP */ |
434 | 445 | ||