Re: [PATCH 14/21] cpuidle: coupled: don't compare cpu masks unnecessarily

From: Colin Cross
Date: Wed Sep 25 2013 - 20:25:38 EST


On Sat, Sep 21, 2013 at 6:21 PM, Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
> In cpuidle_coupled_register_device() we do following:
> if (WARN_ON(!cpumask_equal(&dev->coupled_cpus, &coupled->coupled_cpus)))
> coupled->prevent++;
>
> This is only required to be done when we are using 'coupled' from an existing
> cpuidle_device and not when we have just done this:
>
> coupled->coupled_cpus = dev->coupled_cpus
>
> So, move this compare statement to the right place.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>

I don't agree with this. This patch is a tiny optimization in code
that is rarely called, and it moves a final sanity check somewhere
that it might get missed if the code were later refactored.

> ---
> drivers/cpuidle/coupled.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/cpuidle/coupled.c b/drivers/cpuidle/coupled.c
> index e952936..19a89eb 100644
> --- a/drivers/cpuidle/coupled.c
> +++ b/drivers/cpuidle/coupled.c
> @@ -642,6 +642,10 @@ int cpuidle_coupled_register_device(struct cpuidle_device *dev)
> other_dev = per_cpu(cpuidle_devices, cpu);
> if (other_dev && other_dev->coupled) {
> coupled = other_dev->coupled;
> +
> + if (WARN_ON(!cpumask_equal(&dev->coupled_cpus,
> + &coupled->coupled_cpus)))
> + coupled->prevent++;
> goto have_coupled;
> }
> }
> @@ -655,9 +659,6 @@ int cpuidle_coupled_register_device(struct cpuidle_device *dev)
>
> have_coupled:
> dev->coupled = coupled;
> - if (WARN_ON(!cpumask_equal(&dev->coupled_cpus, &coupled->coupled_cpus)))
> - coupled->prevent++;
> -
> cpuidle_coupled_update_online_cpus(coupled);
>
> coupled->refcnt++;
> --
> 1.7.12.rc2.18.g61b472e
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/