|
|
Log in / Subscribe / Register

RE: Reworking push/pull

RE: Reworking push/pull

Posted Sep 19, 2017 1:35 UTC (Tue) by iamsrp (subscriber, #84011)
Parent article: Notes from the LPC scheduler microconference

Could the problem be solved via delegation? I.e. something like:

  • CPU[k] goes idle
  • CPU[k] walks the other CPUs [0..n) to look for the first idle one (possibly itself); CPU[i]
  • CPU[k] sends an IPI to CPU[i] requesting that it do the search for a busy CPU
  • CPU[i] walks the CPUs [0..n) looking for an overloaded one, CPU[b], and "forwards" the IPI from CPU[k] to CPU[b]
  • CPU[i] also remembers "recently" signaled overloaded CPUs and so avoids forwarding subsequent IPIs to them
Here [i] can clearly change, and memory of recently signaled CPUs isn't shared. It's also not going to be as quick owing to the extra hop, and it may well still have pathological cases, but is possibly better..?


to post comments


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds