cpumask: replace cpumask_next_* with cpumask_first_* where appropriate
cpumask_first() is a more effective analogue of 'next' version if n == -1 (which means start == 0). This patch replaces 'next' with 'first' where things look trivial. There's no cpumask_first_zero() function, so create it. Signed-off-by: Yury Norov <yury.norov@gmail.com> Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
This commit is contained in:
parent
4ade0818cf
commit
9b51d9d866
@ -2967,7 +2967,7 @@ static bool blk_mq_hctx_has_requests(struct blk_mq_hw_ctx *hctx)
|
|||||||
static inline bool blk_mq_last_cpu_in_hctx(unsigned int cpu,
|
static inline bool blk_mq_last_cpu_in_hctx(unsigned int cpu,
|
||||||
struct blk_mq_hw_ctx *hctx)
|
struct blk_mq_hw_ctx *hctx)
|
||||||
{
|
{
|
||||||
if (cpumask_next_and(-1, hctx->cpumask, cpu_online_mask) != cpu)
|
if (cpumask_first_and(hctx->cpumask, cpu_online_mask) != cpu)
|
||||||
return false;
|
return false;
|
||||||
if (cpumask_next_and(cpu, hctx->cpumask, cpu_online_mask) < nr_cpu_ids)
|
if (cpumask_next_and(cpu, hctx->cpumask, cpu_online_mask) < nr_cpu_ids)
|
||||||
return false;
|
return false;
|
||||||
|
@ -2101,7 +2101,7 @@ static void virtnet_set_affinity(struct virtnet_info *vi)
|
|||||||
stragglers = num_cpu >= vi->curr_queue_pairs ?
|
stragglers = num_cpu >= vi->curr_queue_pairs ?
|
||||||
num_cpu % vi->curr_queue_pairs :
|
num_cpu % vi->curr_queue_pairs :
|
||||||
0;
|
0;
|
||||||
cpu = cpumask_next(-1, cpu_online_mask);
|
cpu = cpumask_first(cpu_online_mask);
|
||||||
|
|
||||||
for (i = 0; i < vi->curr_queue_pairs; i++) {
|
for (i = 0; i < vi->curr_queue_pairs; i++) {
|
||||||
group_size = stride + (i < stragglers ? 1 : 0);
|
group_size = stride + (i < stragglers ? 1 : 0);
|
||||||
|
@ -155,7 +155,7 @@ static int bman_portal_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
spin_lock(&bman_lock);
|
spin_lock(&bman_lock);
|
||||||
cpu = cpumask_next_zero(-1, &portal_cpus);
|
cpu = cpumask_first_zero(&portal_cpus);
|
||||||
if (cpu >= nr_cpu_ids) {
|
if (cpu >= nr_cpu_ids) {
|
||||||
__bman_portals_probed = 1;
|
__bman_portals_probed = 1;
|
||||||
/* unassigned portal, skip init */
|
/* unassigned portal, skip init */
|
||||||
|
@ -248,7 +248,7 @@ static int qman_portal_probe(struct platform_device *pdev)
|
|||||||
pcfg->pools = qm_get_pools_sdqcr();
|
pcfg->pools = qm_get_pools_sdqcr();
|
||||||
|
|
||||||
spin_lock(&qman_lock);
|
spin_lock(&qman_lock);
|
||||||
cpu = cpumask_next_zero(-1, &portal_cpus);
|
cpu = cpumask_first_zero(&portal_cpus);
|
||||||
if (cpu >= nr_cpu_ids) {
|
if (cpu >= nr_cpu_ids) {
|
||||||
__qman_portals_probed = 1;
|
__qman_portals_probed = 1;
|
||||||
/* unassigned portal, skip init */
|
/* unassigned portal, skip init */
|
||||||
|
@ -123,6 +123,11 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline unsigned int cpumask_first_zero(const struct cpumask *srcp)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline unsigned int cpumask_first_and(const struct cpumask *srcp1,
|
static inline unsigned int cpumask_first_and(const struct cpumask *srcp1,
|
||||||
const struct cpumask *srcp2)
|
const struct cpumask *srcp2)
|
||||||
{
|
{
|
||||||
@ -201,6 +206,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
|
|||||||
return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits);
|
return find_first_bit(cpumask_bits(srcp), nr_cpumask_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cpumask_first_zero - get the first unset cpu in a cpumask
|
||||||
|
* @srcp: the cpumask pointer
|
||||||
|
*
|
||||||
|
* Returns >= nr_cpu_ids if all cpus are set.
|
||||||
|
*/
|
||||||
|
static inline unsigned int cpumask_first_zero(const struct cpumask *srcp)
|
||||||
|
{
|
||||||
|
return find_first_zero_bit(cpumask_bits(srcp), nr_cpumask_bits);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cpumask_first_and - return the first cpu from *srcp1 & *srcp2
|
* cpumask_first_and - return the first cpu from *srcp1 & *srcp2
|
||||||
* @src1p: the first input
|
* @src1p: the first input
|
||||||
|
@ -257,7 +257,7 @@ static void clocksource_verify_choose_cpus(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
/* Make sure to select at least one CPU other than the current CPU. */
|
/* Make sure to select at least one CPU other than the current CPU. */
|
||||||
cpu = cpumask_next(-1, cpu_online_mask);
|
cpu = cpumask_first(cpu_online_mask);
|
||||||
if (cpu == smp_processor_id())
|
if (cpu == smp_processor_id())
|
||||||
cpu = cpumask_next(cpu, cpu_online_mask);
|
cpu = cpumask_next(cpu, cpu_online_mask);
|
||||||
if (WARN_ON_ONCE(cpu >= nr_cpu_ids))
|
if (WARN_ON_ONCE(cpu >= nr_cpu_ids))
|
||||||
@ -279,7 +279,7 @@ static void clocksource_verify_choose_cpus(void)
|
|||||||
cpu = prandom_u32() % nr_cpu_ids;
|
cpu = prandom_u32() % nr_cpu_ids;
|
||||||
cpu = cpumask_next(cpu - 1, cpu_online_mask);
|
cpu = cpumask_next(cpu - 1, cpu_online_mask);
|
||||||
if (cpu >= nr_cpu_ids)
|
if (cpu >= nr_cpu_ids)
|
||||||
cpu = cpumask_next(-1, cpu_online_mask);
|
cpu = cpumask_first(cpu_online_mask);
|
||||||
if (!WARN_ON_ONCE(cpu >= nr_cpu_ids))
|
if (!WARN_ON_ONCE(cpu >= nr_cpu_ids))
|
||||||
cpumask_set_cpu(cpu, &cpus_chosen);
|
cpumask_set_cpu(cpu, &cpus_chosen);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user