summaryrefslogtreecommitdiffstats
path: root/include/linux/cpu.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-05-06 17:31:50 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-05-06 17:31:50 -0400
commite00d4135751bfe786a9e26b5560b185ce3f9f963 (patch)
tree6945bd6749aab501000f7084e020aa201971e1ff /include/linux/cpu.h
parent90489a72fba9529c85e051067ecb41183b8e982e (diff)
parent08ae95f4fd3b38b257f5dc7e6507e071c27ba0d5 (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 changes in this cycle were: - Make nohz housekeeping processing more permissive and less intrusive to isolated CPUs - Decouple CPU-bound workqueue acconting from the scheduler and move it into the workqueue code. - Optimize topology building - Better handle quota and period overflows - Add more RCU annotations - Comment updates, misc cleanups" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits) nohz_full: Allow the boot CPU to be nohz_full sched/isolation: Require a present CPU in housekeeping mask kernel/cpu: Allow non-zero CPU to be primary for suspend / kexec freeze power/suspend: Add function to disable secondaries for suspend sched/core: Allow the remote scheduler tick to be started on CPU0 sched/nohz: Run NOHZ idle load balancer on HK_FLAG_MISC CPUs sched/debug: Fix spelling mistake "logaritmic" -> "logarithmic" sched/topology: Update init_sched_domains() comment cgroup/cpuset: Update stale generate_sched_domains() comments sched/core: Check quota and period overflow at usec to nsec conversion sched/core: Handle overflow in cpu_shares_write_u64 sched/rt: Check integer overflow at usec to nsec conversion sched/core: Fix typo in comment sched/core: Make some functions static sched/core: Unify p->on_rq updates sched/core: Remove ttwu_activate() sched/core, workqueues: Distangle worker accounting from rq lock sched/fair: Remove unneeded prototype of capacity_of() sched/topology: Skip duplicate group rewrites in build_sched_groups() sched/topology: Fix build_sched_groups() comment ...
Diffstat (limited to 'include/linux/cpu.h')
-rw-r--r--include/linux/cpu.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 2d9c6f4b78f5..2d62f01108a0 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -137,9 +137,26 @@ static inline int disable_nonboot_cpus(void)
137 return freeze_secondary_cpus(0); 137 return freeze_secondary_cpus(0);
138} 138}
139extern void enable_nonboot_cpus(void); 139extern void enable_nonboot_cpus(void);
140
141static inline int suspend_disable_secondary_cpus(void)
142{
143 int cpu = 0;
144
145 if (IS_ENABLED(CONFIG_PM_SLEEP_SMP_NONZERO_CPU))
146 cpu = -1;
147
148 return freeze_secondary_cpus(cpu);
149}
150static inline void suspend_enable_secondary_cpus(void)
151{
152 return enable_nonboot_cpus();
153}
154
140#else /* !CONFIG_PM_SLEEP_SMP */ 155#else /* !CONFIG_PM_SLEEP_SMP */
141static inline int disable_nonboot_cpus(void) { return 0; } 156static inline int disable_nonboot_cpus(void) { return 0; }
142static inline void enable_nonboot_cpus(void) {} 157static inline void enable_nonboot_cpus(void) {}
158static inline int suspend_disable_secondary_cpus(void) { return 0; }
159static inline void suspend_enable_secondary_cpus(void) { }
143#endif /* !CONFIG_PM_SLEEP_SMP */ 160#endif /* !CONFIG_PM_SLEEP_SMP */
144 161
145void cpu_startup_entry(enum cpuhp_state state); 162void cpu_startup_entry(enum cpuhp_state state);