Commit 40ba13b4 authored by Yury Norov's avatar Yury Norov
Browse files

powerpc/xmon: simplify xmon_batch_next_cpu()



The function opencodes for_each_cpu_wrap() macro. As a loop termination
condition it uses cpumask_empty(), which is O(N), and it makes the whole
algorithm O(N^2). Switching to for_each_cpu_wrap() simplifies the logic,
and makes the algorithm linear.

Signed-off-by: default avatarYury Norov <yury.norov@gmail.com>
parent 2a402aa6
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -1271,11 +1271,7 @@ static int xmon_batch_next_cpu(void)
{
	unsigned long cpu;

	while (!cpumask_empty(&xmon_batch_cpus)) {
		cpu = cpumask_next_wrap(smp_processor_id(), &xmon_batch_cpus,
					xmon_batch_start_cpu, true);
		if (cpu >= nr_cpu_ids)
			break;
	for_each_cpu_wrap(cpu, &xmon_batch_cpus, xmon_batch_start_cpu) {
		if (xmon_batch_start_cpu == -1)
			xmon_batch_start_cpu = cpu;
		if (xmon_switch_cpu(cpu))