提交 96f874e2 编写于 作者: R Rusty Russell 提交者: Ingo Molnar

sched: convert remaining old-style cpumask operators

Impact: Trivial API conversion

  NR_CPUS -> nr_cpu_ids
  cpumask_t -> struct cpumask
  sizeof(cpumask_t) -> cpumask_size()
  cpumask_a = cpumask_b -> cpumask_copy(&cpumask_a, &cpumask_b)

  cpu_set() -> cpumask_set_cpu()
  first_cpu() -> cpumask_first()
  cpumask_of_cpu() -> cpumask_of()
  cpus_* -> cpumask_*

There are some FIXMEs where we all archs to complete infrastructure
(patches have been sent):

  cpu_coregroup_map -> cpu_coregroup_mask
  node_to_cpumask* -> cpumask_of_node

There is also one FIXME where we pass an array of cpumasks to
partition_sched_domains(): this implies knowing the definition of
'struct cpumask' and the size of a cpumask.  This will be fixed in a
future patch.
Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 0e3900e6
...@@ -879,7 +879,7 @@ static inline struct cpumask *sched_domain_span(struct sched_domain *sd) ...@@ -879,7 +879,7 @@ static inline struct cpumask *sched_domain_span(struct sched_domain *sd)
return to_cpumask(sd->span); return to_cpumask(sd->span);
} }
extern void partition_sched_domains(int ndoms_new, cpumask_t *doms_new, extern void partition_sched_domains(int ndoms_new, struct cpumask *doms_new,
struct sched_domain_attr *dattr_new); struct sched_domain_attr *dattr_new);
extern int arch_reinit_sched_domains(void); extern int arch_reinit_sched_domains(void);
...@@ -888,7 +888,7 @@ extern int arch_reinit_sched_domains(void); ...@@ -888,7 +888,7 @@ extern int arch_reinit_sched_domains(void);
struct sched_domain_attr; struct sched_domain_attr;
static inline void static inline void
partition_sched_domains(int ndoms_new, cpumask_t *doms_new, partition_sched_domains(int ndoms_new, struct cpumask *doms_new,
struct sched_domain_attr *dattr_new) struct sched_domain_attr *dattr_new)
{ {
} }
...@@ -970,7 +970,7 @@ struct sched_class { ...@@ -970,7 +970,7 @@ struct sched_class {
void (*task_wake_up) (struct rq *this_rq, struct task_struct *task); void (*task_wake_up) (struct rq *this_rq, struct task_struct *task);
void (*set_cpus_allowed)(struct task_struct *p, void (*set_cpus_allowed)(struct task_struct *p,
const cpumask_t *newmask); const struct cpumask *newmask);
void (*rq_online)(struct rq *rq); void (*rq_online)(struct rq *rq);
void (*rq_offline)(struct rq *rq); void (*rq_offline)(struct rq *rq);
...@@ -1612,12 +1612,12 @@ extern cputime_t task_gtime(struct task_struct *p); ...@@ -1612,12 +1612,12 @@ extern cputime_t task_gtime(struct task_struct *p);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
extern int set_cpus_allowed_ptr(struct task_struct *p, extern int set_cpus_allowed_ptr(struct task_struct *p,
const cpumask_t *new_mask); const struct cpumask *new_mask);
#else #else
static inline int set_cpus_allowed_ptr(struct task_struct *p, static inline int set_cpus_allowed_ptr(struct task_struct *p,
const cpumask_t *new_mask) const struct cpumask *new_mask)
{ {
if (!cpu_isset(0, *new_mask)) if (!cpumask_test_cpu(0, new_mask))
return -EINVAL; return -EINVAL;
return 0; return 0;
} }
...@@ -2230,8 +2230,8 @@ __trace_special(void *__tr, void *__data, ...@@ -2230,8 +2230,8 @@ __trace_special(void *__tr, void *__data,
} }
#endif #endif
extern long sched_setaffinity(pid_t pid, const cpumask_t *new_mask); extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
extern long sched_getaffinity(pid_t pid, cpumask_t *mask); extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
extern int sched_mc_power_savings, sched_smt_power_savings; extern int sched_mc_power_savings, sched_smt_power_savings;
......
此差异已折叠。
...@@ -1017,7 +1017,7 @@ static void yield_task_fair(struct rq *rq) ...@@ -1017,7 +1017,7 @@ static void yield_task_fair(struct rq *rq)
* search starts with cpus closest then further out as needed, * search starts with cpus closest then further out as needed,
* so we always favor a closer, idle cpu. * so we always favor a closer, idle cpu.
* Domains may include CPUs that are not usable for migration, * Domains may include CPUs that are not usable for migration,
* hence we need to mask them out (cpu_active_map) * hence we need to mask them out (cpu_active_mask)
* *
* Returns the CPU we should wake onto. * Returns the CPU we should wake onto.
*/ */
...@@ -1244,7 +1244,7 @@ static int select_task_rq_fair(struct task_struct *p, int sync) ...@@ -1244,7 +1244,7 @@ static int select_task_rq_fair(struct task_struct *p, int sync)
} }
} }
if (unlikely(!cpu_isset(this_cpu, p->cpus_allowed))) if (unlikely(!cpumask_test_cpu(this_cpu, &p->cpus_allowed)))
goto out; goto out;
/* /*
......
...@@ -923,7 +923,7 @@ static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep); ...@@ -923,7 +923,7 @@ static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep);
static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu) static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu)
{ {
if (!task_running(rq, p) && if (!task_running(rq, p) &&
(cpu < 0 || cpu_isset(cpu, p->cpus_allowed)) && (cpu < 0 || cpumask_test_cpu(cpu, &p->cpus_allowed)) &&
(p->rt.nr_cpus_allowed > 1)) (p->rt.nr_cpus_allowed > 1))
return 1; return 1;
return 0; return 0;
...@@ -982,7 +982,7 @@ static inline int pick_optimal_cpu(int this_cpu, cpumask_t *mask) ...@@ -982,7 +982,7 @@ static inline int pick_optimal_cpu(int this_cpu, cpumask_t *mask)
static int find_lowest_rq(struct task_struct *task) static int find_lowest_rq(struct task_struct *task)
{ {
struct sched_domain *sd; struct sched_domain *sd;
cpumask_t *lowest_mask = __get_cpu_var(local_cpu_mask); struct cpumask *lowest_mask = __get_cpu_var(local_cpu_mask);
int this_cpu = smp_processor_id(); int this_cpu = smp_processor_id();
int cpu = task_cpu(task); int cpu = task_cpu(task);
...@@ -997,7 +997,7 @@ static int find_lowest_rq(struct task_struct *task) ...@@ -997,7 +997,7 @@ static int find_lowest_rq(struct task_struct *task)
* I guess we might want to change cpupri_find() to ignore those * I guess we might want to change cpupri_find() to ignore those
* in the first place. * in the first place.
*/ */
cpus_and(*lowest_mask, *lowest_mask, cpu_active_map); cpumask_and(lowest_mask, lowest_mask, cpu_active_mask);
/* /*
* At this point we have built a mask of cpus representing the * At this point we have built a mask of cpus representing the
...@@ -1007,7 +1007,7 @@ static int find_lowest_rq(struct task_struct *task) ...@@ -1007,7 +1007,7 @@ static int find_lowest_rq(struct task_struct *task)
* We prioritize the last cpu that the task executed on since * We prioritize the last cpu that the task executed on since
* it is most likely cache-hot in that location. * it is most likely cache-hot in that location.
*/ */
if (cpu_isset(cpu, *lowest_mask)) if (cpumask_test_cpu(cpu, lowest_mask))
return cpu; return cpu;
/* /*
...@@ -1064,8 +1064,8 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) ...@@ -1064,8 +1064,8 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq)
* Also make sure that it wasn't scheduled on its rq. * Also make sure that it wasn't scheduled on its rq.
*/ */
if (unlikely(task_rq(task) != rq || if (unlikely(task_rq(task) != rq ||
!cpu_isset(lowest_rq->cpu, !cpumask_test_cpu(lowest_rq->cpu,
task->cpus_allowed) || &task->cpus_allowed) ||
task_running(rq, task) || task_running(rq, task) ||
!task->se.on_rq)) { !task->se.on_rq)) {
...@@ -1315,9 +1315,9 @@ move_one_task_rt(struct rq *this_rq, int this_cpu, struct rq *busiest, ...@@ -1315,9 +1315,9 @@ move_one_task_rt(struct rq *this_rq, int this_cpu, struct rq *busiest,
} }
static void set_cpus_allowed_rt(struct task_struct *p, static void set_cpus_allowed_rt(struct task_struct *p,
const cpumask_t *new_mask) const struct cpumask *new_mask)
{ {
int weight = cpus_weight(*new_mask); int weight = cpumask_weight(new_mask);
BUG_ON(!rt_task(p)); BUG_ON(!rt_task(p));
...@@ -1338,7 +1338,7 @@ static void set_cpus_allowed_rt(struct task_struct *p, ...@@ -1338,7 +1338,7 @@ static void set_cpus_allowed_rt(struct task_struct *p,
update_rt_migration(rq); update_rt_migration(rq);
} }
p->cpus_allowed = *new_mask; cpumask_copy(&p->cpus_allowed, new_mask);
p->rt.nr_cpus_allowed = weight; p->rt.nr_cpus_allowed = weight;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册