From: Gautham R Shenoy <ego@linux.vnet.ibm.com> To: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au>, linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, LKML <linux-kernel@vger.kernel.org>, Nicholas Piggin <npiggin@gmail.com>, Anton Blanchard <anton@ozlabs.org>, "Oliver O'Halloran" <oohall@gmail.com>, Nathan Lynch <nathanl@linux.ibm.com>, Michael Neuling <mikey@neuling.org>, Gautham R Shenoy <ego@linux.vnet.ibm.com>, Ingo Molnar <mingo@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Valentin Schneider <valentin.schneider@arm.com>, Jordan Niethe <jniethe5@gmail.com> Subject: Re: [PATCH v3 05/10] powerpc/smp: Dont assume l2-cache to be superset of sibling Date: Fri, 24 Jul 2020 12:41:08 +0530 [thread overview] Message-ID: <20200724071108.GD21415@in.ibm.com> (raw) In-Reply-To: <20200723085116.4731-6-srikar@linux.vnet.ibm.com> On Thu, Jul 23, 2020 at 02:21:11PM +0530, Srikar Dronamraju wrote: > Current code assumes that cpumask of cpus sharing a l2-cache mask will > always be a superset of cpu_sibling_mask. > > Lets stop that assumption. cpu_l2_cache_mask is a superset of > cpu_sibling_mask if and only if shared_caches is set. > > Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org> > Cc: LKML <linux-kernel@vger.kernel.org> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: Nicholas Piggin <npiggin@gmail.com> > Cc: Anton Blanchard <anton@ozlabs.org> > Cc: Oliver O'Halloran <oohall@gmail.com> > Cc: Nathan Lynch <nathanl@linux.ibm.com> > Cc: Michael Neuling <mikey@neuling.org> > Cc: Gautham R Shenoy <ego@linux.vnet.ibm.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Valentin Schneider <valentin.schneider@arm.com> > Cc: Jordan Niethe <jniethe5@gmail.com> > Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> > --- > Changelog v1 -> v2: > Set cpumask after verifying l2-cache. (Gautham) > > arch/powerpc/kernel/smp.c | 28 +++++++++++++++------------- > 1 file changed, 15 insertions(+), 13 deletions(-) > > diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c > index da27f6909be1..d997c7411664 100644 > --- a/arch/powerpc/kernel/smp.c > +++ b/arch/powerpc/kernel/smp.c > @@ -1194,6 +1194,7 @@ static bool update_mask_by_l2(int cpu, struct cpumask *(*mask_fn)(int)) > if (!l2_cache) > return false; > > + cpumask_set_cpu(cpu, mask_fn(cpu)); > for_each_cpu(i, cpu_online_mask) { > /* > * when updating the marks the current CPU has not been marked > @@ -1276,29 +1277,30 @@ static void add_cpu_to_masks(int cpu) > * add it to it's own thread sibling mask. > */ > cpumask_set_cpu(cpu, cpu_sibling_mask(cpu)); > + cpumask_set_cpu(cpu, cpu_core_mask(cpu)); > > for (i = first_thread; i < first_thread + threads_per_core; i++) > if (cpu_online(i)) > set_cpus_related(i, cpu, cpu_sibling_mask); > > add_cpu_to_smallcore_masks(cpu); > - /* > - * Copy the thread sibling mask into the cache sibling mask > - * and mark any CPUs that share an L2 with this CPU. > - */ > - for_each_cpu(i, cpu_sibling_mask(cpu)) > - set_cpus_related(cpu, i, cpu_l2_cache_mask); > update_mask_by_l2(cpu, cpu_l2_cache_mask); > > - /* > - * Copy the cache sibling mask into core sibling mask and mark > - * any CPUs on the same chip as this CPU. > - */ > - for_each_cpu(i, cpu_l2_cache_mask(cpu)) > - set_cpus_related(cpu, i, cpu_core_mask); > + if (pkg_id == -1) { > + struct cpumask *(*mask)(int) = cpu_sibling_mask; > + > + /* > + * Copy the sibling mask into core sibling mask and > + * mark any CPUs on the same chip as this CPU. > + */ > + if (shared_caches) > + mask = cpu_l2_cache_mask; > + > + for_each_cpu(i, mask(cpu)) > + set_cpus_related(cpu, i, cpu_core_mask); > > - if (pkg_id == -1) > return; > + } > > for_each_cpu(i, cpu_online_mask) > if (get_physical_package_id(i) == pkg_id) > -- > 2.18.2 >
WARNING: multiple messages have this Message-ID (diff)
From: Gautham R Shenoy <ego@linux.vnet.ibm.com> To: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Cc: Nathan Lynch <nathanl@linux.ibm.com>, Gautham R Shenoy <ego@linux.vnet.ibm.com>, Michael Neuling <mikey@neuling.org>, Peter Zijlstra <peterz@infradead.org>, LKML <linux-kernel@vger.kernel.org>, Nicholas Piggin <npiggin@gmail.com>, Valentin Schneider <valentin.schneider@arm.com>, Oliver O'Halloran <oohall@gmail.com>, Jordan Niethe <jniethe5@gmail.com>, linuxppc-dev <linuxppc-dev@lists.ozlabs.org>, Ingo Molnar <mingo@kernel.org> Subject: Re: [PATCH v3 05/10] powerpc/smp: Dont assume l2-cache to be superset of sibling Date: Fri, 24 Jul 2020 12:41:08 +0530 [thread overview] Message-ID: <20200724071108.GD21415@in.ibm.com> (raw) In-Reply-To: <20200723085116.4731-6-srikar@linux.vnet.ibm.com> On Thu, Jul 23, 2020 at 02:21:11PM +0530, Srikar Dronamraju wrote: > Current code assumes that cpumask of cpus sharing a l2-cache mask will > always be a superset of cpu_sibling_mask. > > Lets stop that assumption. cpu_l2_cache_mask is a superset of > cpu_sibling_mask if and only if shared_caches is set. > > Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org> > Cc: LKML <linux-kernel@vger.kernel.org> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: Nicholas Piggin <npiggin@gmail.com> > Cc: Anton Blanchard <anton@ozlabs.org> > Cc: Oliver O'Halloran <oohall@gmail.com> > Cc: Nathan Lynch <nathanl@linux.ibm.com> > Cc: Michael Neuling <mikey@neuling.org> > Cc: Gautham R Shenoy <ego@linux.vnet.ibm.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Valentin Schneider <valentin.schneider@arm.com> > Cc: Jordan Niethe <jniethe5@gmail.com> > Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> > --- > Changelog v1 -> v2: > Set cpumask after verifying l2-cache. (Gautham) > > arch/powerpc/kernel/smp.c | 28 +++++++++++++++------------- > 1 file changed, 15 insertions(+), 13 deletions(-) > > diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c > index da27f6909be1..d997c7411664 100644 > --- a/arch/powerpc/kernel/smp.c > +++ b/arch/powerpc/kernel/smp.c > @@ -1194,6 +1194,7 @@ static bool update_mask_by_l2(int cpu, struct cpumask *(*mask_fn)(int)) > if (!l2_cache) > return false; > > + cpumask_set_cpu(cpu, mask_fn(cpu)); > for_each_cpu(i, cpu_online_mask) { > /* > * when updating the marks the current CPU has not been marked > @@ -1276,29 +1277,30 @@ static void add_cpu_to_masks(int cpu) > * add it to it's own thread sibling mask. > */ > cpumask_set_cpu(cpu, cpu_sibling_mask(cpu)); > + cpumask_set_cpu(cpu, cpu_core_mask(cpu)); > > for (i = first_thread; i < first_thread + threads_per_core; i++) > if (cpu_online(i)) > set_cpus_related(i, cpu, cpu_sibling_mask); > > add_cpu_to_smallcore_masks(cpu); > - /* > - * Copy the thread sibling mask into the cache sibling mask > - * and mark any CPUs that share an L2 with this CPU. > - */ > - for_each_cpu(i, cpu_sibling_mask(cpu)) > - set_cpus_related(cpu, i, cpu_l2_cache_mask); > update_mask_by_l2(cpu, cpu_l2_cache_mask); > > - /* > - * Copy the cache sibling mask into core sibling mask and mark > - * any CPUs on the same chip as this CPU. > - */ > - for_each_cpu(i, cpu_l2_cache_mask(cpu)) > - set_cpus_related(cpu, i, cpu_core_mask); > + if (pkg_id == -1) { > + struct cpumask *(*mask)(int) = cpu_sibling_mask; > + > + /* > + * Copy the sibling mask into core sibling mask and > + * mark any CPUs on the same chip as this CPU. > + */ > + if (shared_caches) > + mask = cpu_l2_cache_mask; > + > + for_each_cpu(i, mask(cpu)) > + set_cpus_related(cpu, i, cpu_core_mask); > > - if (pkg_id == -1) > return; > + } > > for_each_cpu(i, cpu_online_mask) > if (get_physical_package_id(i) == pkg_id) > -- > 2.18.2 >
next prev parent reply other threads:[~2020-07-24 7:11 UTC|newest] Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-23 8:51 [PATCH v3 00/10] Coregroup support on Powerpc Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 01/10] powerpc/smp: Fix a warning under !NEED_MULTIPLE_NODES Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 02/10] powerpc/smp: Merge Power9 topology with Power topology Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-24 7:06 ` Gautham R Shenoy 2020-07-24 7:06 ` Gautham R Shenoy 2020-07-23 8:51 ` [PATCH v3 03/10] powerpc/smp: Move powerpc_topology above Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 04/10] powerpc/smp: Move topology fixups into a new function Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-24 7:08 ` Gautham R Shenoy 2020-07-24 7:08 ` Gautham R Shenoy 2020-07-23 8:51 ` [PATCH v3 05/10] powerpc/smp: Dont assume l2-cache to be superset of sibling Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-24 7:11 ` Gautham R Shenoy [this message] 2020-07-24 7:11 ` Gautham R Shenoy 2020-07-23 8:51 ` [PATCH v3 06/10] powerpc/smp: Generalize 2nd sched domain Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 07/10] powerpc/numa: Detect support for coregroup Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 08/10] powerpc/smp: Allocate cpumask only after searching thread group Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 09/10] powerpc/smp: Create coregroup domain Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju 2020-07-27 4:39 ` Gautham R Shenoy 2020-07-27 4:39 ` Gautham R Shenoy 2020-07-27 11:18 ` Srikar Dronamraju 2020-07-27 11:18 ` Srikar Dronamraju 2020-07-23 8:51 ` [PATCH v3 10/10] powerpc/smp: Implement cpu_to_coregroup_id Srikar Dronamraju 2020-07-23 8:51 ` Srikar Dronamraju
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200724071108.GD21415@in.ibm.com \ --to=ego@linux.vnet.ibm.com \ --cc=anton@ozlabs.org \ --cc=jniethe5@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mikey@neuling.org \ --cc=mingo@kernel.org \ --cc=mpe@ellerman.id.au \ --cc=nathanl@linux.ibm.com \ --cc=npiggin@gmail.com \ --cc=oohall@gmail.com \ --cc=peterz@infradead.org \ --cc=srikar@linux.vnet.ibm.com \ --cc=valentin.schneider@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.