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