Hello Stefan,
welcome to the mailing list!
we are using Genode on Fiasco.OC and want to use different Scheduler for different CPU-Cores.
Is there a way to assign a Scheduler to a CPU-Core in Genode?
I have never heard of such a feature in Fiasco.OC. If it exists, Genode does not provide any way to access it.
Right now, Genode provides the following scheduling-related mechanisms:
* At the creation time of a CPU session, the CPU session's static priority can be assigned. This priority is propagated as scheduling parameter to the kernel whenever a thread is created. On base-hw, CPU sessions can be further equipped with quotas, which allows proportional-share scheduling.
* It is possible to define the affinity space per CPU session, i.e., to make a subset of physical CPUs available to a CPU session.
* It is possible to define the affinity of an individual thread to a CPU within the affinity space of the thread's CPU session.
Genode leaves the the actual thread scheduling to the underlying kernel. Most L4 kernels (including Fiasco.OC) implement a simple round-robin scheduler with static priorities. Our custom base-hw kernel employs a more flexible scheduler, which is described in Section 7.6.7. "Scheduler of the base-hw kernel" of the Genode Foundations book [1]. But also base-hw simply uses the same scheduling algorithm on each CPU.
Could you provide a tangible example of using a variety of scheduling algorithms on different CPUs?
[1] http://genode.org/documentation/genode-foundations-16-05.pdf
Best regards Norman