diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-13 16:37:52 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-13 16:37:52 -0500 |
| commit | 3e2014637c50e5d6a77cd63d5db6c209fe29d1b1 (patch) | |
| tree | a672ed603262aeddda4490056b27b09791d0cbbb /include/linux/cpumask.h | |
| parent | f2be8bd52e7410c70145f73511a2e80f4797e1a5 (diff) | |
| parent | 765cc3a4b224e22bf524fabe40284a524f37cdd0 (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:
"The main updates in this cycle were:
- Group balancing enhancements and cleanups (Brendan Jackman)
- Move CPU isolation related functionality into its separate
kernel/sched/isolation.c file, with related 'housekeeping_*()'
namespace and nomenclature et al. (Frederic Weisbecker)
- Improve the interactive/cpu-intense fairness calculation (Josef
Bacik)
- Improve the PELT code and related cleanups (Peter Zijlstra)
- Improve the logic of pick_next_task_fair() (Uladzislau Rezki)
- Improve the RT IPI based balancing logic (Steven Rostedt)
- Various micro-optimizations:
- better !CONFIG_SCHED_DEBUG optimizations (Patrick Bellasi)
- better idle loop (Cheng Jian)
- ... plus misc fixes, cleanups and updates"
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
sched/core: Optimize sched_feat() for !CONFIG_SCHED_DEBUG builds
sched/sysctl: Fix attributes of some extern declarations
sched/isolation: Document isolcpus= boot parameter flags, mark it deprecated
sched/isolation: Add basic isolcpus flags
sched/isolation: Move isolcpus= handling to the housekeeping code
sched/isolation: Handle the nohz_full= parameter
sched/isolation: Introduce housekeeping flags
sched/isolation: Split out new CONFIG_CPU_ISOLATION=y config from CONFIG_NO_HZ_FULL
sched/isolation: Rename is_housekeeping_cpu() to housekeeping_cpu()
sched/isolation: Use its own static key
sched/isolation: Make the housekeeping cpumask private
sched/isolation: Provide a dynamic off-case to housekeeping_any_cpu()
sched/isolation, watchdog: Use housekeeping_cpumask() instead of ad-hoc version
sched/isolation: Move housekeeping related code to its own file
sched/idle: Micro-optimize the idle loop
sched/isolcpus: Fix "isolcpus=" boot parameter handling when !CONFIG_CPUMASK_OFFSTACK
x86/tsc: Append the 'tsc=' description for the 'tsc=unstable' boot parameter
sched/rt: Simplify the IPI based RT balancing logic
block/ioprio: Use a helper to check for RT prio
sched/rt: Add a helper to test for a RT task
...
Diffstat (limited to 'include/linux/cpumask.h')
| -rw-r--r-- | include/linux/cpumask.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 8d3125c493b2..75b565194437 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
| @@ -131,6 +131,11 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) | |||
| 131 | return 0; | 131 | return 0; |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | static inline unsigned int cpumask_last(const struct cpumask *srcp) | ||
| 135 | { | ||
| 136 | return 0; | ||
| 137 | } | ||
| 138 | |||
| 134 | /* Valid inputs for n are -1 and 0. */ | 139 | /* Valid inputs for n are -1 and 0. */ |
| 135 | static inline unsigned int cpumask_next(int n, const struct cpumask *srcp) | 140 | static inline unsigned int cpumask_next(int n, const struct cpumask *srcp) |
| 136 | { | 141 | { |
| @@ -179,6 +184,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) | |||
| 179 | return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits); | 184 | return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits); |
| 180 | } | 185 | } |
| 181 | 186 | ||
| 187 | /** | ||
| 188 | * cpumask_last - get the last CPU in a cpumask | ||
| 189 | * @srcp: - the cpumask pointer | ||
| 190 | * | ||
| 191 | * Returns >= nr_cpumask_bits if no CPUs set. | ||
| 192 | */ | ||
| 193 | static inline unsigned int cpumask_last(const struct cpumask *srcp) | ||
| 194 | { | ||
| 195 | return find_last_bit(cpumask_bits(srcp), nr_cpumask_bits); | ||
| 196 | } | ||
| 197 | |||
| 182 | unsigned int cpumask_next(int n, const struct cpumask *srcp); | 198 | unsigned int cpumask_next(int n, const struct cpumask *srcp); |
| 183 | 199 | ||
| 184 | /** | 200 | /** |
