Discussion:
Partitioned Scheduling
Edinger, Stefan
2016-09-02 20:09:55 UTC
Permalink
Hi,

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?

Thank you
Stefan Edinger
Norman Feske
2016-09-05 10:04:52 UTC
Permalink
Hello Stefan,

welcome to the mailing list!
Post by Edinger, Stefan
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
--
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

------------------------------------------------------------------------------
Daniel Krefft
2016-09-05 10:33:49 UTC
Permalink
Hello Norman,

thank you for the quick reply. Stefan and I try to realize a
mixed-critical system, where different cores are classified in either
high or low (e.g. brake and navigation).

So, we want to employ a fixed-prio scheduling scheme on the high cores
and an edf scheduling scheme on the low cores. Both cores reside on the
same CPU (e.g. PandaBoard).

Maybe it is the wrong approach, is there any other possibility to
realize this behaviour?

Best regards
Daniel
Post by Norman Feske
Hello Stefan,
welcome to the mailing list!
Post by Edinger, Stefan
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.
* 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
------------------------------------------------------------------------------
Loading...