Hi,

On 09/03/2014 12:32 AM, Adam Lackorzynski wrote:
> And indeed, you need to map the cap to the new task.
>
> l4_task_map(task_cap, L4RE_THIS_TASK_CAP,
> l4_obj_fpage(l4re_env()->rm, 0, L4_FPAGE_RO),
> l4_map_obj_control(l4re_env()->rm, L4_MAP_ITEM_MAP));
Thanks, that works, there's no more kernel warning for an invalid pager now.

But the actual thread function is not executed any more.
Instead, Fiasco calls the deblock_refill method of my ready queue
implementation for that thread (respectively Sched_context) _steadily_.
I've attached the output of JDB's thread list. It's interesting to see
that thread0 seems to wait for the first thread of task 1a.

The function of thread0 accesses its Edf_thread object created in task
1a (named 't'), so I've tried to map that object to the new task.
Additionally, I've tried to map the thread capability for thread0
('t->cap') to the new task. But both approaches do not solve the problem.

> l4_task_map(task_cap, L4RE_THIS_TASK_CAP,
> l4_fpage((l4_umword_t)t, sizeof(t), L4_FPAGE_RW),
> l4_map_obj_control((l4_umword_t)&t, L4_MAP_ITEM_MAP));

> l4_task_map(task_cap, L4RE_THIS_TASK_CAP,
> l4_obj_fpage(t->cap, 0, L4_FPAGE_RW),
> l4_map_obj_control(t->cap, L4_MAP_ITEM_MAP));

Best regards,
Valentin
   id  cpu    name             pr     sp  wait    to state
   2c   0     thread2           0     2b             ready
   2a   0     thread3           0     29             ready
   28   0     thread1           0     27             ready
   26   0     thread0           0     24    1b       ready,rcv_wait
   1e   0     main_thread       2     1a     a       rcv_wait
   1b   0     #libedft-examp   ff     1a             transfer
    a   0     moe              ff      9             ready
    8   0     sigma0            1      7     -       rcv_wait
    6   0     -----             0      1             ready
_______________________________________________
l4-hackers mailing list
[email protected]
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

Reply via email to