[PATCH 04/11] powerpc/smp: Enable small core scheduling sooner
Srikar Dronamraju
srikar at linux.vnet.ibm.com
Mon Jul 20 17:20:16 AEST 2020
* Gautham R Shenoy <ego at linux.vnet.ibm.com> [2020-07-17 11:18:21]:
> On Tue, Jul 14, 2020 at 10:06:17AM +0530, Srikar Dronamraju wrote:
> > Enable small core scheduling as soon as we detect that we are in a
> > system that supports thread group. Doing so would avoid a redundant
> > check.
> >
> > Cc: linuxppc-dev <linuxppc-dev at lists.ozlabs.org>
> > Cc: Michael Ellerman <michaele at au1.ibm.com>
> > Cc: Nick Piggin <npiggin at au1.ibm.com>
> > Cc: Oliver OHalloran <oliveroh at au1.ibm.com>
> > Cc: Nathan Lynch <nathanl at linux.ibm.com>
> > Cc: Michael Neuling <mikey at linux.ibm.com>
> > Cc: Anton Blanchard <anton at au1.ibm.com>
> > Cc: Gautham R Shenoy <ego at linux.vnet.ibm.com>
> > Cc: Vaidyanathan Srinivasan <svaidy at linux.ibm.com>
> > Signed-off-by: Srikar Dronamraju <srikar at linux.vnet.ibm.com>
>
> I don't see a problem with this.
>
> However, since we are now going to be maintaining a single topology
> structure, wouldn't it be better to collate all the changes being made
> to the mask_functions/flags/names of this structure within a single
> function so that it becomes easier to keep track of what all changes
> are going into the topology and why are we doing it?
>
My intent was to move the topology updates early as soon as they are
detected. Currently the shared_cache want cannot be detected early.
But I think its possible to detect shared_cache early with some cleanups.
And if we do, then we should be able to call this up pretty early.
>
> > ---
> > arch/powerpc/kernel/smp.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
> > index 24529f6134aa..7d430fc536cc 100644
> > --- a/arch/powerpc/kernel/smp.c
> > +++ b/arch/powerpc/kernel/smp.c
> > @@ -892,6 +892,12 @@ static int init_big_cores(void)
> > }
> >
> > has_big_cores = true;
> > +
> > +#ifdef CONFIG_SCHED_SMT
> > + pr_info("Big cores detected. Using small core scheduling\n");
> > + powerpc_topology[0].mask = smallcore_smt_mask;
> > +#endif
> > +
> > return 0;
> > }
> >
> > @@ -1383,12 +1389,6 @@ void __init smp_cpus_done(unsigned int max_cpus)
> >
> > dump_numa_cpu_topology();
> >
> > -#ifdef CONFIG_SCHED_SMT
> > - if (has_big_cores) {
> > - pr_info("Big cores detected but using small core scheduling\n");
> > - powerpc_topology[0].mask = smallcore_smt_mask;
> > - }
> > -#endif
> > set_sched_topology(powerpc_topology);
> > }
> >
> > --
> > 2.17.1
> >
--
Thanks and Regards
Srikar Dronamraju
More information about the Linuxppc-dev
mailing list