Now, a process that does a lot of sleeping on IO does shift around a lot. It doesn't much matter where it wakes up, after all.
What about whatever working set it had in the caches? It may be sleeping on I/O, but if your number of running tasks stays below your number of CPUs, there's a good chance that a good fraction of that working set is still in the L2 of the last processor it ran on. So, it seems like you'd want to wake it on that same CPU.
Then again, with modern multiprocessors, that state might be in an L3 shared by multiple CPUs, even if it isn't in L2. (And, the trend seems to be to increase the size of L3 at the expense of the size of L2, or at least in lieu of increasing L2.) So then you want to wake up on a processor connected to the same L3...
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds