Re: [RFC PATCH v1 1/2] sched: unified sched_powersavings sysfstunable

From: Peter Zijlstra
Date: Wed Jan 25 2012 - 09:53:38 EST


On Mon, 2012-01-16 at 21:52 +0530, Vaidyanathan Srinivasan wrote:
> +++ b/block/blk.h
> @@ -167,14 +167,15 @@ static inline int queue_congestion_off_threshold(struct request_queue *q)
> static inline int blk_cpu_to_group(int cpu)
> {
> int group = NR_CPUS;
> -#ifdef CONFIG_SCHED_MC
> - const struct cpumask *mask = cpu_coregroup_mask(cpu);
> - group = cpumask_first(mask);
> -#elif defined(CONFIG_SCHED_SMT)
> - group = cpumask_first(topology_thread_cpumask(cpu));
> +#ifdef CONFIG_SCHED_POWERSAVE
> + if (smt_capable())
> + group = cpumask_first(topology_thread_cpumask(cpu));
> + else
> + group = cpumask_first(cpu_coregroup_mask(cpu));
> #else
> return cpu;
> #endif
> + /* Possible dead code?? */
> if (likely(group < NR_CPUS))
> return group;
> return cpu;

After going, WTF is block doing! I had a closer look and this doesn't
seem right at all. The old code would use coregroup_mask when SCHED_MC
&& SCHED_SMT, the new code does something else.

Jens, what is this thing trying to do?

--
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/