Re: SMP Scheduling

Philipp Kupferschmied <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Hello,

let my try to answer those questions of which I think I know the answer ;-)

>  - Threads have priorities. Threads in one priority class are served
>    round-robin. Higher priority queues are served first.

As far as I know, this is correct.

>  - Pistachio always creates threads on the first CPU unless told
>    otherwise via L4_ThreadControl.

Nope, I think that's not correct. Threads are assigned to the CPU on
which ThreadControl is executed and can be migrated afterwards using
"Set_ProcessorNo", which is derived from the "Schedule" syscall. Or did
I get your question wrong?

>  - Because preemption messages are sent with timeout 0, one would need
>    at least one thread per CPU that handles preemption
>    messages. Otherwise one could lose messages when the scheduler is
>    busy.

I'm not sure about this, but it sounds reasonable. It is generally a
good idea to offer at least one thread per service and CPU for reasons
of parallelism and to avoid communication between threads on different CPUs.

Perhaps [1] might also be interesing for you.

Hope this helps,
Philipp

[1]
Towards Effective User-Controlled Scheduling for Microkernel-Based Systems
Jan Stoess
ACM SIGOPS Operating System Review, Special Topics on Secure
Small-Kernel Systems, July 2007
http://i30www.ira.uka.de/research/documents/l4ka/2007/stoess07ul4sched.pdf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.