Subject: Re: [PATCH 2 1/4] powerpc: drop the ability to tweak SMT mode at boot time

From: Michael Ellerman <[email-masked]>
Date: Wed, 10 Dec 2014 13:14:49 +1100

On Tue, 2014-12-09 at 18:14 -0600, Scott Wood wrote:
> On Wed, 2014-12-10 at 10:56 +1100, Michael Ellerman wrote:
> > On Tue, 2014-12-09 at 15:04 -0600, Scott Wood wrote:
> > > On Tue, 2014-12-09 at 15:11 +1100, Michael Ellerman wrote:
> > > > On Fri, 2014-12-05 at 12:52 -0600, Scott Wood wrote:
> > > > > On Fri, 2014-12-05 at 16:14 +0100, Greg Kurz wrote:
> > > > > > The smt-enabled kernel parameter basically leaves unwanted cpus executing
> > > > > > in firmware or wherever they happen to be. The very same applies to the
> > > > > > ibm,smt-enabled DT property which is no more used by anything known. These
> > > > > > are hacks that shoudn't be used in a production environment.
> > > > > > 
> > > > > > Quoting mpe, "there are better ways for firmware to disable SMT".
> > > > > 
> > > > > Those "better ways" don't apply to Freescale chips, where the OS enables
> > > > > (or not) SMT without any interaction with firmware.
> > > > 
> > > > But how does it know there even are SMT threads? From the device tree? So
> > > > just don't present the threads in the device tree?
> > > 
> > > The device tree is for hardware description, not configuration...
> > 
> > Oh please, you're quoting device tree scripture to me now?
> 
> What benefit is there to ignoring "scripture" here?  Going from an easy
> to use command line option to needing to mess around with the dts file
> is not a usability improvement.  If you want to make it Freescale-only,
> fine.  If you want to push me to fix the problems with the
> implementation, fine.

It's easy to use but it doesn't necessarily work.

You said in your other mail to Greg "Sometimes it's useful to ensure that the
second thread has never run when debugging a problem.".

But you don't know that, for all you know your firmware has started the thread
and it's busy looping somewhere. Perhaps you guys know that your firmware
doesn't do that, but it's still a hack.

We end up with cpus in the present map, but we have no idea where they are or
what they are doing.

So as far as I'm concerned it's only useful as a debugging hack, and one that
we don't really use anymore. But if you guys think it's useful then we'll keep
it.

I'll work out with Greg what the cleanest solution is.

It looks like you only need it on e6500? Which is platforms/85xx I think.
Anywhere else?

cheers