Hacker News new | ask | show | jobs
by fstrthnscnd 1684 days ago
Wouldn't it be possible for a process to ask to be pinned to a specific CPU core, or the OS to handle programs with extra tags indicating their ISA requirements, so that it could restrict the scheduling to those cores matching the requirements?
4 comments

About a decade ago, as an intern helping research this, I developed an app to manually tag processes as "big core only" or "little core only" etc. This was for the QuickIA[0], which had a Xeon in one socket and an Atom in the other. It was fun to kick off a gigantic compression task and watch the "expected time to completion" progress bar change dramatically when you migrated the process between sockets.

You all would probably find the "QuickIA Software Support" section interesting, they go through a few issues you run into when you have incompatible micro architectures running in a single system. It also might help illuminate where Intel's head was at during the early research phase of creating a heterogeneous processor.

[0] https://www.neotextus.net/hpca12.pdf

That's what people generally expected when the whole P-core vs E-core on different microarchitectures design was announced. Instead of going for this, Intel went out of their way to state that there would be no AVX-512 even on P-cores and that's that. Ignoring this obvious solution is part of why I'm so flabbergasted at the situation.
Perhaps there are undisclosed security implications?
Then they can just say so and spin it as a PR win - "look how security conscious we are these days". Very publicly removing a formerly-headline feature with no explanation and then even failing at that is just mind boggling.
Answering myself:

I decided to search for SMP, which stands for Symetric Multi Processing, to verify its definition. This acronym is used for hardware sporting several identical CPUs, which is what we've seen so far in the x86 world.

The opposite is called AMP, for Asymetric Multi Processing. The Wikipedia article on the subject describes several OS level strategies to handle that sort of hardware.

> with extra tags indicating their ISA requirements

If the processor faults for an invalid instruction, it can simply trigger a migration to another core. The OS should be able to do it.

Even if it's randomly assigned to a different core, eventually the process will end up on a good one.