Posted Oct 25, 2012 14:26 UTC (Thu) by robert_s (subscriber, #42402)
Parent article: Small-task packing
"one could argue that the last thing the scheduler developers need is yet another problem to worry about."
Rather OT, but may I theorize about another one?
Do people think at any point in the foreseeable future it may be feasible to organize processes on cores "automatically" according to shared memory areas they access? From what I can tell, modern processors emit perf events when cache coherency actions take place. Could a scheduler perhaps listen for these, infer that processes on two different ends of the machine topology and messing around with the same region of memory, and choose to move processes nearer to each other (so that they are perhaps sharing at least an L2 cache and cache coherency resolutions don't have to bubble up as far)?
Admittedly this would only be able to notice conflicting _writes_ and may not do anything for read-heavy processes.
And acknowledged that this has a similarity to what AutoNUMA is trying to do for memory nodes.
Or is this something that would be the job of userspace and cpu affinity?