The Linux kernel configuration has CONFIG_SMP, to enable support for multiple CPU cores. There is another option, CONFIG_SCHED_SMT, known as "hyperthreading", that simulates more than one core for each physical core.
In all of my releases of Puppy Linux, and the distros I now work on (Quirky and EasyOS), I left CONFIG_SCHED_SMT turned off, as I distrusted it -- caused file corrupt back in the early days, recently it is looking like a security risk.
Anyway, a kernel developer submitted a patch to force CONFIG_SCHED_SMT as always enabled, and removed the choice from the kernel configuration. It was signed off by the big guns, even Linus, and is now in the kernel, backported to earlier versions.
In the 4.14.x series, it arrived with 4.14.86.
What I object to is this choice being taken away from us, with very little reason, it seems, just for the developers coding convenience.
I posted about this to my blog, along with an email I sent to some kernel developers:
http://bkhome.org/news/201812/kernel-41 ... piled.html
Sent the email this morning, and have received a reply from Greg KH, asking for further clarification, and this is my reply:
I don't know whether the latest woof-CE built pups still have SCHED_SMT turned off. But it is the principle of thing, our choice being arbitrarily taken away.On 12/16/18, Greg KH <gregkh@linuxfoundation.org> wrote:
> On Sun, Dec 16, 2018 at 02:21:55PM +0800, Barry Kauler wrote:
>
> Is having this option enabled causing a problem for you? Does it cause
> slowdowns or runtime issues?
>
> thanks,
>
> greg k-h
>
Greg,
I have retained a distrust of hyperthreading, since the early days, when I first tried it, got file corruption, so turned it off and left it off, for the last ten years, well longer than that.
Then recently, I was feeling smug that I was avoiding some security issues by having it off. From light reading on the topic anyway, so it seemed.
Apart from my own distros, I am sure that there are other non-mainstream distros and thousands of embedded applications of the kernel out there, that have SCHED_SMT turned off.
Anyway, how many distros have or have not got it enabled, is not the main issue. SMT is a distinct feature, separate from SMP, and I think that it is important to keep that distinction. Even if "just in case".
Also, from the description in the submitted patch, I can't see any real justification for forcing SCHED_SMT on, just a small amount of coding convenience for the security hacks they are putting into the kernel. That's the impression I got anyway, from reading the changelog.
Another comment I would make, is that although there appears to be some speed gain from hyperthreading, on paper, in practice it is mostly "corner cases". Nobody has ever said Puppy Linux is slow, just the opposite -- other mainstream distros are often reported as sluggish in comparison.
Regards,
Barry kauler
My comment about negligible speed loss if SCHED_SMT is off, was thrown in there to stir things up. I know that there are some tests that show speed improvement with hyperthreading on certain CPUs.
But, would you notice any difference, practically, running a pup with it on or off?
Thought that I would post this here, in case anyone would like to comment, and maybe further clarify some of my comments. Even if you want to refute some of my comments, that is fine, I want to see this from all angles.