Message ID | 1458273857.6622.75.camel@neuling.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Fri, 2016-03-18 at 15:04 +1100, Michael Neuling wrote: > > static int nr_chips; > +static DEFINE_PER_CPU(unsigned int, chip_id); > > /* > * Note: The set of pstates consists of contiguous integers, the > @@ -317,9 +318,7 @@ static void powernv_cpufreq_throttle_check(void > *data) > > pmsr = get_pmspr(SPRN_PMSR); > > - for (i = 0; i < nr_chips; i++) > - if (chips[i].id == cpu_to_chip_id(cpu)) > - break; > + i = this_cpu_read(chip_id); Except it's not a chip_id, so your patch confused me for a good 2mn ... Call it chip_idx maybe ? ie, index. Cheers, Ben. > /* Check for Pmax Capping */ > pmsr_pmax = (s8)PMSR_MAX(pmsr); > @@ -560,6 +559,7 @@ static int init_chip_info(void) > for_each_possible_cpu(cpu) { > unsigned int id = cpu_to_chip_id(cpu); > > + per_cpu(chip_id, cpu) = nr_chips; > if (prev_chip_id != id) { > prev_chip_id = id; > chip[nr_chips++] = id; > _______________________________________________ -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat, 2016-03-19 at 09:37 +1100, Benjamin Herrenschmidt wrote: > On Fri, 2016-03-18 at 15:04 +1100, Michael Neuling wrote: > > > > static int nr_chips; > > +static DEFINE_PER_CPU(unsigned int, chip_id); > > > > /* > > * Note: The set of pstates consists of contiguous integers, the > > @@ -317,9 +318,7 @@ static void powernv_cpufreq_throttle_check(void > > *data) > > > > pmsr = get_pmspr(SPRN_PMSR); > > > > - for (i = 0; i < nr_chips; i++) > > - if (chips[i].id == cpu_to_chip_id(cpu)) > > - break; > > + i = this_cpu_read(chip_id); > > Except it's not a chip_id, so your patch confused me for a good 2mn > ... > Call it chip_idx maybe ? ie, index. Yeah, it was a badly named variable but I changed it even more and Shilpasri rebased it here: http://patchwork.ozlabs.org/patch/599523/ Mikey -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/cpufreq/powernv-cpufreq.c b/drivers/cpufreq/powernv-cpufreq.c index 547890f..d63d2cb 100644 --- a/drivers/cpufreq/powernv-cpufreq.c +++ b/drivers/cpufreq/powernv-cpufreq.c @@ -52,6 +52,7 @@ static struct chip { } *chips; static int nr_chips; +static DEFINE_PER_CPU(unsigned int, chip_id); /* * Note: The set of pstates consists of contiguous integers, the @@ -317,9 +318,7 @@ static void powernv_cpufreq_throttle_check(void *data) pmsr = get_pmspr(SPRN_PMSR); - for (i = 0; i < nr_chips; i++) - if (chips[i].id == cpu_to_chip_id(cpu)) - break; + i = this_cpu_read(chip_id); /* Check for Pmax Capping */ pmsr_pmax = (s8)PMSR_MAX(pmsr); @@ -560,6 +559,7 @@ static int init_chip_info(void) for_each_possible_cpu(cpu) { unsigned int id = cpu_to_chip_id(cpu); + per_cpu(chip_id, cpu) = nr_chips; if (prev_chip_id != id) { prev_chip_id = id; chip[nr_chips++] = id;