lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 18 Mar 2016 15:11:48 +1100 From: Michael Neuling <mikey@...ling.org> To: Shilpasri G Bhat <shilpa.bhat@...ux.vnet.ibm.com>, linuxppc-dev@...abs.org, linux-kernel@...r.kernel.org Cc: ego@...ux.vnet.ibm.com, linux-pm@...r.kernel.org, viresh.kumar@...aro.org, rjw@...ysocki.net, pc@...ibm.com, shreyas@...ux.vnet.ibm.com, anton@...ba.org Subject: Re: [PATCH v8 3/6] cpufreq: powernv: Remove cpu_to_chip_id() from hot-path On Fri, 2016-03-18 at 15:04 +1100, Michael Neuling wrote: > On Wed, 2016-02-03 at 01:11 +0530, Shilpasri G Bhat wrote: > > > cpu_to_chip_id() does a DT walk through to find out the chip id by > > taking a contended device tree lock. This adds an unnecessary > > overhead > > in a hot path. So instead of calling cpu_to_chip_id() everytime > > cache > > the chip ids for all cores in the array 'core_to_chip_map' and use > > it > > in the hotpath. > > > > Reported-by: Anton Blanchard <anton@...ba.org> > > Signed-off-by: Shilpasri G Bhat <shilpa.bhat@...ux.vnet.ibm.com> > > Reviewed-by: Gautham R. Shenoy <ego@...ux.vnet.ibm.com> > > Acked-by: Viresh Kumar <viresh.kumar@...aro.org> > > --- > > No changes from v7. > > How about this instead? It removes the linear lookup and seems a lot > less complex. BTW we never init nr_chips before using it. We also need something like. diff --git a/drivers/cpufreq/powernv-cpufreq.c b/drivers/cpufreq/powernv-cpufreq.c index d63d2cb..c819ed4 100644 --- a/drivers/cpufreq/powernv-cpufreq.c +++ b/drivers/cpufreq/powernv-cpufreq.c @@ -556,6 +556,8 @@ static int init_chip_info(void) unsigned int cpu, i; unsigned int prev_chip_id = UINT_MAX; + nr_chips = 0; + for_each_possible_cpu(cpu) { unsigned int id = cpu_to_chip_id(cpu);
Powered by blists - more mailing lists