On Fri Sep 05, 2014 at 15:05:46 +0200, Valentin Hauner wrote:
On 09/05/2014 12:28 AM, Adam Lackorzynski wrote:
Does it work with the default scheduler?
No, it does not work with the default Fixed_prio scheduler. Tasks are created properly and my threads are assigned to them. But after that, nothing happens. Instead, one of the created threads (thread0 - thread3) waits for the pager 1b. I've attached the code of that example for your convenience. I've removed all code that concerns the EDF scheduler, so it works with the default Fixed_prio scheduler. It's a ordinary package, so just place it under './l4/pkg' and run the binary produced by './libedft/examples/libedft-example'.
Your threads page-fault all around. The reason is that I was slightly wrong with my last statement on paging. The pager of the parent task resolves the page-fault however just maps the memory locally to the parent task, so the memory never appears in the child tasks. I guess you have to map the pages yourself. I guess you could just map everything from _stext & L4_PAGEMASK to _end & L4_PAGEMASk to all tasks.
Besides, I've tried to modify your utcb-ipc example and created a new task for thread2 just as you suggested in your previous posts. It doesn't work either, thread1 outputs a 'Thread1 up' and then nothing happens (thread2 is active then). I've attached the JDB thread list output for this example.
Looks like the same issue to me.
Adam