Re: [RFC PATCH] ACPI / processor: Get accurate possible CPU count

From: Andy Shevchenko
Date: Wed Mar 14 2018 - 13:24:22 EST


On Wed, Mar 14, 2018 at 12:28 PM, Dou Liyang <douly.fnst@xxxxxxxxxxxxxx> wrote:

> +static void __init acpi_update_possible_map(void)
> +{
> + unsigned int cpu, nr = 0;
> +

> + if (nr_cpu_ids <= nr_unique_ids)
> + return;
> +
> + for_each_possible_cpu(cpu) {
> + if (nr >= nr_unique_ids)
> + set_cpu_possible(cpu, false);
> + nr++;
> + }

IIUC this can be optimized to:

if (nr_unique_ids >= nr_cpu_ids)
return;

/* Don't yet figure out if it's superfluous */
if (nr_unique_ids >= cpumask_last(cpu_possible_mask))
return;

for_each_cpu_wrap(cpu, cpu_possible_mask, nr_unique_ids)
set_cpu_possible(cpu, false);

> + nr_cpu_ids = nr_unique_ids;
> + pr_info("Allowing %d possible CPUs\n", nr_cpu_ids);
> +}

--
With Best Regards,
Andy Shevchenko