Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96f874e2 authored by Rusty Russell's avatar Rusty Russell Committed by Ingo Molnar
Browse files

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: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 0e3900e6
Loading
Loading
Loading
Loading
+8 −8
Original line number Original line Diff line number Diff line
@@ -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);
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 {
	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);


#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,
}
}
#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;


+113 −99

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Original line Diff line number Diff line
@@ -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)
		}
		}
	}
	}


	if (unlikely(!cpu_isset(this_cpu, p->cpus_allowed)))
	if (unlikely(!cpumask_test_cpu(this_cpu, &p->cpus_allowed)))
		goto out;
		goto out;


	/*
	/*
+9 −9
Original line number Original line Diff line number Diff line
@@ -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)
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)
	 * 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)
	 * 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)
			 * 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,
}
}


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,
		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;
}
}