forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/l…
…inux/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 ...
- Loading branch information
Showing
31 changed files
with
1,270 additions
and
774 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#ifndef _LINUX_SCHED_ISOLATION_H | ||
#define _LINUX_SCHED_ISOLATION_H | ||
|
||
#include <linux/cpumask.h> | ||
#include <linux/init.h> | ||
#include <linux/tick.h> | ||
|
||
enum hk_flags { | ||
HK_FLAG_TIMER = 1, | ||
HK_FLAG_RCU = (1 << 1), | ||
HK_FLAG_MISC = (1 << 2), | ||
HK_FLAG_SCHED = (1 << 3), | ||
HK_FLAG_TICK = (1 << 4), | ||
HK_FLAG_DOMAIN = (1 << 5), | ||
}; | ||
|
||
#ifdef CONFIG_CPU_ISOLATION | ||
DECLARE_STATIC_KEY_FALSE(housekeeping_overriden); | ||
extern int housekeeping_any_cpu(enum hk_flags flags); | ||
extern const struct cpumask *housekeeping_cpumask(enum hk_flags flags); | ||
extern void housekeeping_affine(struct task_struct *t, enum hk_flags flags); | ||
extern bool housekeeping_test_cpu(int cpu, enum hk_flags flags); | ||
extern void __init housekeeping_init(void); | ||
|
||
#else | ||
|
||
static inline int housekeeping_any_cpu(enum hk_flags flags) | ||
{ | ||
return smp_processor_id(); | ||
} | ||
|
||
static inline const struct cpumask *housekeeping_cpumask(enum hk_flags flags) | ||
{ | ||
return cpu_possible_mask; | ||
} | ||
|
||
static inline void housekeeping_affine(struct task_struct *t, | ||
enum hk_flags flags) { } | ||
static inline void housekeeping_init(void) { } | ||
#endif /* CONFIG_CPU_ISOLATION */ | ||
|
||
static inline bool housekeeping_cpu(int cpu, enum hk_flags flags) | ||
{ | ||
#ifdef CONFIG_CPU_ISOLATION | ||
if (static_branch_unlikely(&housekeeping_overriden)) | ||
return housekeeping_test_cpu(cpu, flags); | ||
#endif | ||
return true; | ||
} | ||
|
||
#endif /* _LINUX_SCHED_ISOLATION_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.