AW: L4_ThreadSwitch behaviour
"Christian, Martin, OPEE45" <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
> http://www.ertos.nicta.com.au/publications/papers/Ruocco_06.abstract.pml Very nice! :-) > explains a fair bit of L4 [Pistachio/N1/...] scheduling, including the > tricky timeslice donation. Have a look and let me know if you need more > clarifications. Is a Pagefault basically a Call() IPC like the interrupt path? Or is it a Send() without blocking (because the pager is waiting already)? a) In the former case, the Pager should get donated the timeslice. b) In the latter case, execution switches to the pager if prio(Pager) > prio(faulting thread). Well, b) doesn't make sense, since the faulting thread can't continue execution anyways. So I assume it is a). Let's go back to my problem: A newly created thread get's donated a timeslice. It want's to execute, but creates a page fault because it's code is not yet mapped into it's address space. If my assumption is right, the Pager would get a timeslice donation from the faulting thread. But probably the Pager is executing only until the next timer tick. That's when scheduling is done and the Pager gets ousted by the root task. Thus, the Pager won't ever answer the page fault IPC. Is that right? Thanks, Martin.