Right now, doesn't Genode just put everything on CPU 0 unless told otherwise? It seems best for an available CPU to run the next thread that has that CPU in its affinity space. How can that policy (or something similarly efficient) be implemented?
On Wed, Mar 14, 2018 at 4:12 AM, Emery Hemingway <ehmry@...548...> wrote:
CPU balancing is pretty easy to manage at a higher level. For example, the Nim runtime balances additional Genode threads automatically, because the common high-level case is to create a thread pool for each CPU and push jobs to it. In other cases I assume that a thread will be blocked or block an external component, and running components on multiple CPUs only comes with the performance cost of communicating across multiple CPUs.
https://github.com/nim-lang/Nim/blob/55a5dcf8a47a47028707c46491072c 438eb2f6ce/lib/system/threads.nim#L570
On Tue, 13 Mar 2018 05:19:46 -0600 Nobody III <hungryninja101@...9...> wrote:
It seems like we ought to have a balancer component or at least basic balancing built into init. A lack of balancing is a huge performance issue on modern SMP CPUs. How could we go about this? Could a server do the balancing through the CPU session interface?
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main