Skip to content

Commit 90eec95

Browse files
Chen Ridonghtejun
authored andcommitted
cgroup/cpuset: move memory_spread to cpuset-v1.c
'memory_spread' is only set in cpuset v1. move corresponding code into cpuset-v1.c. Currently, 'cpuset_update_task_spread_flags' and 'update_tasks_flags' are exposed to cpuset.c. Signed-off-by: Chen Ridong <[email protected]> Acked-by: Waiman Long <[email protected]> Signed-off-by: Tejun Heo <[email protected]>
1 parent 047b830 commit 90eec95

File tree

3 files changed

+45
-42
lines changed

3 files changed

+45
-42
lines changed

kernel/cgroup/cpuset-internal.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,5 +248,8 @@ int fmeter_getrate(struct fmeter *fmp);
248248
int cpuset_write_s64(struct cgroup_subsys_state *css, struct cftype *cft,
249249
s64 val);
250250
s64 cpuset_read_s64(struct cgroup_subsys_state *css, struct cftype *cft);
251+
void cpuset_update_task_spread_flags(struct cpuset *cs,
252+
struct task_struct *tsk);
253+
void update_tasks_flags(struct cpuset *cs);
251254

252255
#endif /* __CPUSET_INTERNAL_H */

kernel/cgroup/cpuset-v1.c

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,45 @@ s64 cpuset_read_s64(struct cgroup_subsys_state *css, struct cftype *cft)
194194
/* Unreachable but makes gcc happy */
195195
return 0;
196196
}
197+
198+
/*
199+
* update task's spread flag if cpuset's page/slab spread flag is set
200+
*
201+
* Call with callback_lock or cpuset_mutex held. The check can be skipped
202+
* if on default hierarchy.
203+
*/
204+
void cpuset_update_task_spread_flags(struct cpuset *cs,
205+
struct task_struct *tsk)
206+
{
207+
if (cgroup_subsys_on_dfl(cpuset_cgrp_subsys))
208+
return;
209+
210+
if (is_spread_page(cs))
211+
task_set_spread_page(tsk);
212+
else
213+
task_clear_spread_page(tsk);
214+
215+
if (is_spread_slab(cs))
216+
task_set_spread_slab(tsk);
217+
else
218+
task_clear_spread_slab(tsk);
219+
}
220+
221+
/**
222+
* update_tasks_flags - update the spread flags of tasks in the cpuset.
223+
* @cs: the cpuset in which each task's spread flags needs to be changed
224+
*
225+
* Iterate through each task of @cs updating its spread flags. As this
226+
* function is called with cpuset_mutex held, cpuset membership stays
227+
* stable.
228+
*/
229+
void update_tasks_flags(struct cpuset *cs)
230+
{
231+
struct css_task_iter it;
232+
struct task_struct *task;
233+
234+
css_task_iter_start(&cs->css, 0, &it);
235+
while ((task = css_task_iter_next(&it)))
236+
cpuset_update_task_spread_flags(cs, task);
237+
css_task_iter_end(&it);
238+
}

kernel/cgroup/cpuset.c

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -407,29 +407,6 @@ static void guarantee_online_mems(struct cpuset *cs, nodemask_t *pmask)
407407
nodes_and(*pmask, cs->effective_mems, node_states[N_MEMORY]);
408408
}
409409

410-
/*
411-
* update task's spread flag if cpuset's page/slab spread flag is set
412-
*
413-
* Call with callback_lock or cpuset_mutex held. The check can be skipped
414-
* if on default hierarchy.
415-
*/
416-
static void cpuset_update_task_spread_flags(struct cpuset *cs,
417-
struct task_struct *tsk)
418-
{
419-
if (cgroup_subsys_on_dfl(cpuset_cgrp_subsys))
420-
return;
421-
422-
if (is_spread_page(cs))
423-
task_set_spread_page(tsk);
424-
else
425-
task_clear_spread_page(tsk);
426-
427-
if (is_spread_slab(cs))
428-
task_set_spread_slab(tsk);
429-
else
430-
task_clear_spread_slab(tsk);
431-
}
432-
433410
/*
434411
* is_cpuset_subset(p, q) - Is cpuset p a subset of cpuset q?
435412
*
@@ -2794,25 +2771,6 @@ bool current_cpuset_is_being_rebound(void)
27942771
return ret;
27952772
}
27962773

2797-
/**
2798-
* update_tasks_flags - update the spread flags of tasks in the cpuset.
2799-
* @cs: the cpuset in which each task's spread flags needs to be changed
2800-
*
2801-
* Iterate through each task of @cs updating its spread flags. As this
2802-
* function is called with cpuset_mutex held, cpuset membership stays
2803-
* stable.
2804-
*/
2805-
static void update_tasks_flags(struct cpuset *cs)
2806-
{
2807-
struct css_task_iter it;
2808-
struct task_struct *task;
2809-
2810-
css_task_iter_start(&cs->css, 0, &it);
2811-
while ((task = css_task_iter_next(&it)))
2812-
cpuset_update_task_spread_flags(cs, task);
2813-
css_task_iter_end(&it);
2814-
}
2815-
28162774
/*
28172775
* update_flag - read a 0 or a 1 in a file and update associated flag
28182776
* bit: the bit to update (see cpuset_flagbits_t)

0 commit comments

Comments
 (0)