From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Gautham R Shenoy <ego@linux.vnet.ibm.com>
Cc: Nathan Lynch <nathanl@linux.ibm.com>,
Oliver OHalloran <oliveroh@au1.ibm.com>,
Michael Neuling <mikey@linux.ibm.com>,
Michael Ellerman <michaele@au1.ibm.com>,
Peter Zijlstra <peterz@infradead.org>,
Jordan Niethe <jniethe5@gmail.com>,
Anton Blanchard <anton@au1.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>, Nick Piggin <npiggin@au1.ibm.com>,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
Valentin Schneider <valentin.schneider@arm.com>
Subject: Re: [PATCH v2 06/10] powerpc/smp: Generalize 2nd sched domain
Date: Wed, 22 Jul 2020 13:09:36 +0530 [thread overview]
Message-ID: <20200722073936.GE9290@linux.vnet.ibm.com> (raw)
In-Reply-To: <20200722065640.GE31038@in.ibm.com>
* Gautham R Shenoy <ego@linux.vnet.ibm.com> [2020-07-22 12:26:40]:
> Hello Srikar,
>
> On Tue, Jul 21, 2020 at 05:08:10PM +0530, Srikar Dronamraju wrote:
> > Currently "CACHE" domain happens to be the 2nd sched domain as per
> > powerpc_topology. This domain will collapse if cpumask of l2-cache is
> > same as SMT domain. However we could generalize this domain such that it
> > could mean either be a "CACHE" domain or a "BIGCORE" domain.
> >
> > While setting up the "CACHE" domain, check if shared_cache is already
> > set.
> > @@ -1339,14 +1345,20 @@ void start_secondary(void *unused)
> > /* Update topology CPU masks */
> > add_cpu_to_masks(cpu);
> >
> > - if (has_big_cores)
> > - sibling_mask = cpu_smallcore_mask;
> > /*
> > * Check for any shared caches. Note that this must be done on a
> > * per-core basis because one core in the pair might be disabled.
> > */
> > - if (!cpumask_equal(cpu_l2_cache_mask(cpu), sibling_mask(cpu)))
> > - shared_caches = true;
> > + if (!shared_caches) {
> > + struct cpumask *(*sibling_mask)(int) = cpu_sibling_mask;
> > + struct cpumask *mask = cpu_l2_cache_mask(cpu);
> > +
> > + if (has_big_cores)
> > + sibling_mask = cpu_smallcore_mask;
> > +
> > + if (cpumask_weight(mask) > cpumask_weight(sibling_mask(cpu)))
> > + shared_caches = true;
>
> At the risk of repeating my comment to the v1 version of the patch, we
> have shared caches only l2_cache_mask(cpu) is a strict superset of
> sibling_mask(cpu).
>
> "cpumask_weight(mask) > cpumask_weight(sibling_mask(cpu))" does not
> capture this.
Why would it not? We are setting shared_caches if and only if l2_cache_mask
is a strict superset of sibling/smallcore mask.
> Could we please use
>
> if (!cpumask_equal(sibling_mask(cpu), mask) &&
> cpumask_subset(sibling_mask(cpu), mask) {
> }
>
Scheduler mandates that two cpumasks for the same CPU would either have to
be equal or one of them has to be a strict superset of the other. If not the
scheduler would mark our domains as broken. That being the case,
cpumask_weight will correctly capture what we are looking for. That said
your condition is also correct but slightly heavier and doesn't provide us
with any more information or correctness.
>
> Otherwise the patch looks good to me.
>
> --
> Thanks and Regards
> gautham.
--
Thanks and Regards
Srikar Dronamraju
WARNING: multiple messages have this Message-ID (diff)
From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Gautham R Shenoy <ego@linux.vnet.ibm.com>
Cc: Michael Ellerman <michaele@au1.ibm.com>,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Valentin Schneider <valentin.schneider@arm.com>,
Nick Piggin <npiggin@au1.ibm.com>,
Oliver OHalloran <oliveroh@au1.ibm.com>,
Nathan Lynch <nathanl@linux.ibm.com>,
Michael Neuling <mikey@linux.ibm.com>,
Anton Blanchard <anton@au1.ibm.com>,
Vaidyanathan Srinivasan <svaidy@linux.ibm.com>,
Jordan Niethe <jniethe5@gmail.com>
Subject: Re: [PATCH v2 06/10] powerpc/smp: Generalize 2nd sched domain
Date: Wed, 22 Jul 2020 13:09:36 +0530 [thread overview]
Message-ID: <20200722073936.GE9290@linux.vnet.ibm.com> (raw)
In-Reply-To: <20200722065640.GE31038@in.ibm.com>
* Gautham R Shenoy <ego@linux.vnet.ibm.com> [2020-07-22 12:26:40]:
> Hello Srikar,
>
> On Tue, Jul 21, 2020 at 05:08:10PM +0530, Srikar Dronamraju wrote:
> > Currently "CACHE" domain happens to be the 2nd sched domain as per
> > powerpc_topology. This domain will collapse if cpumask of l2-cache is
> > same as SMT domain. However we could generalize this domain such that it
> > could mean either be a "CACHE" domain or a "BIGCORE" domain.
> >
> > While setting up the "CACHE" domain, check if shared_cache is already
> > set.
> > @@ -1339,14 +1345,20 @@ void start_secondary(void *unused)
> > /* Update topology CPU masks */
> > add_cpu_to_masks(cpu);
> >
> > - if (has_big_cores)
> > - sibling_mask = cpu_smallcore_mask;
> > /*
> > * Check for any shared caches. Note that this must be done on a
> > * per-core basis because one core in the pair might be disabled.
> > */
> > - if (!cpumask_equal(cpu_l2_cache_mask(cpu), sibling_mask(cpu)))
> > - shared_caches = true;
> > + if (!shared_caches) {
> > + struct cpumask *(*sibling_mask)(int) = cpu_sibling_mask;
> > + struct cpumask *mask = cpu_l2_cache_mask(cpu);
> > +
> > + if (has_big_cores)
> > + sibling_mask = cpu_smallcore_mask;
> > +
> > + if (cpumask_weight(mask) > cpumask_weight(sibling_mask(cpu)))
> > + shared_caches = true;
>
> At the risk of repeating my comment to the v1 version of the patch, we
> have shared caches only l2_cache_mask(cpu) is a strict superset of
> sibling_mask(cpu).
>
> "cpumask_weight(mask) > cpumask_weight(sibling_mask(cpu))" does not
> capture this.
Why would it not? We are setting shared_caches if and only if l2_cache_mask
is a strict superset of sibling/smallcore mask.
> Could we please use
>
> if (!cpumask_equal(sibling_mask(cpu), mask) &&
> cpumask_subset(sibling_mask(cpu), mask) {
> }
>
Scheduler mandates that two cpumasks for the same CPU would either have to
be equal or one of them has to be a strict superset of the other. If not the
scheduler would mark our domains as broken. That being the case,
cpumask_weight will correctly capture what we are looking for. That said
your condition is also correct but slightly heavier and doesn't provide us
with any more information or correctness.
>
> Otherwise the patch looks good to me.
>
> --
> Thanks and Regards
> gautham.
--
Thanks and Regards
Srikar Dronamraju
next prev parent reply other threads:[~2020-07-22 7:47 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-21 11:38 [PATCH v2 00/10] Coregroup support on Powerpc Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 01/10] powerpc/smp: Cache node for reuse Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 7:41 ` Michael Ellerman
2020-07-22 7:41 ` Michael Ellerman
2020-07-22 8:04 ` Srikar Dronamraju
2020-07-22 8:04 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 02/10] powerpc/smp: Merge Power9 topology with Power topology Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 5:48 ` Gautham R Shenoy
2020-07-22 5:48 ` Gautham R Shenoy
2020-07-21 11:38 ` [PATCH v2 03/10] powerpc/smp: Move powerpc_topology above Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 04/10] powerpc/smp: Enable small core scheduling sooner Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 5:59 ` Gautham R Shenoy
2020-07-22 5:59 ` Gautham R Shenoy
2020-07-22 6:59 ` Srikar Dronamraju
2020-07-22 6:59 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 05/10] powerpc/smp: Dont assume l2-cache to be superset of sibling Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 6:21 ` Gautham R Shenoy
2020-07-22 6:21 ` Gautham R Shenoy
2020-07-22 6:57 ` Srikar Dronamraju
2020-07-22 6:57 ` Srikar Dronamraju
2020-07-24 7:10 ` Gautham R Shenoy
2020-07-24 7:10 ` Gautham R Shenoy
2020-07-21 11:38 ` [PATCH v2 06/10] powerpc/smp: Generalize 2nd sched domain Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 6:56 ` Gautham R Shenoy
2020-07-22 6:56 ` Gautham R Shenoy
2020-07-22 7:39 ` Srikar Dronamraju [this message]
2020-07-22 7:39 ` Srikar Dronamraju
2020-07-22 7:46 ` peterz
2020-07-22 7:46 ` peterz
2020-07-22 8:18 ` Srikar Dronamraju
2020-07-22 8:18 ` Srikar Dronamraju
2020-07-22 8:48 ` Peter Zijlstra
2020-07-22 8:48 ` Peter Zijlstra
2020-07-22 8:54 ` peterz
2020-07-22 8:54 ` peterz
2020-07-21 11:38 ` [PATCH v2 07/10] Powerpc/numa: Detect support for coregroup Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 08/10] powerpc/smp: Allocate cpumask only after searching thread group Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 09/10] Powerpc/smp: Create coregroup domain Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 7:04 ` Gautham R Shenoy
2020-07-22 7:04 ` Gautham R Shenoy
2020-07-22 7:29 ` Srikar Dronamraju
2020-07-22 7:29 ` Srikar Dronamraju
2020-07-21 11:38 ` [PATCH v2 10/10] powerpc/smp: Implement cpu_to_coregroup_id Srikar Dronamraju
2020-07-21 11:38 ` Srikar Dronamraju
2020-07-22 7:06 ` Gautham R Shenoy
2020-07-22 7:06 ` Gautham R Shenoy
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=20200722073936.GE9290@linux.vnet.ibm.com \
--to=srikar@linux.vnet.ibm.com \
--cc=anton@au1.ibm.com \
--cc=ego@linux.vnet.ibm.com \
--cc=jniethe5@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=michaele@au1.ibm.com \
--cc=mikey@linux.ibm.com \
--cc=mingo@kernel.org \
--cc=nathanl@linux.ibm.com \
--cc=npiggin@au1.ibm.com \
--cc=oliveroh@au1.ibm.com \
--cc=peterz@infradead.org \
--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: link
Be 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.