hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/include/linux/cpuset.h
....@@ -15,6 +15,7 @@
1515 #include <linux/cpumask.h>
1616 #include <linux/nodemask.h>
1717 #include <linux/mm.h>
18
+#include <linux/mmu_context.h>
1819 #include <linux/jump_label.h>
1920
2021 #ifdef CONFIG_CPUSETS
....@@ -40,21 +41,26 @@
4041
4142 static inline void cpuset_inc(void)
4243 {
43
- static_branch_inc(&cpusets_pre_enable_key);
44
- static_branch_inc(&cpusets_enabled_key);
44
+ static_branch_inc_cpuslocked(&cpusets_pre_enable_key);
45
+ static_branch_inc_cpuslocked(&cpusets_enabled_key);
4546 }
4647
4748 static inline void cpuset_dec(void)
4849 {
49
- static_branch_dec(&cpusets_enabled_key);
50
- static_branch_dec(&cpusets_pre_enable_key);
50
+ static_branch_dec_cpuslocked(&cpusets_enabled_key);
51
+ static_branch_dec_cpuslocked(&cpusets_pre_enable_key);
5152 }
5253
5354 extern int cpuset_init(void);
5455 extern void cpuset_init_smp(void);
5556 extern void cpuset_force_rebuild(void);
5657 extern void cpuset_update_active_cpus(void);
58
+extern void cpuset_update_active_cpus_affine(int cpu);
5759 extern void cpuset_wait_for_hotplug(void);
60
+extern void inc_dl_tasks_cs(struct task_struct *task);
61
+extern void dec_dl_tasks_cs(struct task_struct *task);
62
+extern void cpuset_lock(void);
63
+extern void cpuset_unlock(void);
5864 extern void cpuset_cpus_allowed(struct task_struct *p, struct cpumask *mask);
5965 extern void cpuset_cpus_allowed_fallback(struct task_struct *p);
6066 extern nodemask_t cpuset_mems_allowed(struct task_struct *p);
....@@ -160,6 +166,8 @@
160166 task_unlock(current);
161167 }
162168
169
+extern void cpuset_hotplug_workfn(struct work_struct *work);
170
+
163171 #else /* !CONFIG_CPUSETS */
164172
165173 static inline bool cpusets_enabled(void) { return false; }
....@@ -169,6 +177,8 @@
169177
170178 static inline void cpuset_force_rebuild(void) { }
171179
180
+static inline void cpuset_update_active_cpus_affine(int cpu) {}
181
+
172182 static inline void cpuset_update_active_cpus(void)
173183 {
174184 partition_sched_domains(1, NULL, NULL);
....@@ -176,10 +186,15 @@
176186
177187 static inline void cpuset_wait_for_hotplug(void) { }
178188
189
+static inline void inc_dl_tasks_cs(struct task_struct *task) { }
190
+static inline void dec_dl_tasks_cs(struct task_struct *task) { }
191
+static inline void cpuset_lock(void) { }
192
+static inline void cpuset_unlock(void) { }
193
+
179194 static inline void cpuset_cpus_allowed(struct task_struct *p,
180195 struct cpumask *mask)
181196 {
182
- cpumask_copy(mask, cpu_possible_mask);
197
+ cpumask_copy(mask, task_cpu_possible_mask(p));
183198 }
184199
185200 static inline void cpuset_cpus_allowed_fallback(struct task_struct *p)
....@@ -275,6 +290,8 @@
275290 return false;
276291 }
277292
293
+static inline void cpuset_hotplug_workfn(struct work_struct *work) {}
294
+
278295 #endif /* !CONFIG_CPUSETS */
279296
280297 #endif /* _LINUX_CPUSET_H */