Hi! I am currently trying to port IPIPE to a new architecture and have the following symptoms with my first testcase:
- I am using a 2.6.23 Kernel and mainly looked at blackfin and i386 when porting. - I create a domain with priority IPIPE_ROOT_PRIO+100 in a kernel module - The domain entry does only: for(;;) ipipe_suspend_domain(); - After registering the domain I get the message "I-pipe: Domain Module Testdomain registered." and after that the system hangs. I traced the problem a bit and found out that - ipipe_suspend_domain() always returns to the test domain with the highest priority. - Within ipipe_suspend_domain() the function __ipipe_sync_stage() gets called for the root domain and calls __ipipe_run_isr for irq 1 (Linux Timer Tick) irq 2 (network - the whole thing runs from NFS) irq 32 (there are 32 hardware interrupts, the last one is irq 31, this must be a virtual irq) I think the problem is that the IRQ threads do not get scheduled and so cannot handle the Interrupts, although they have been "kicked" by __ipipe_run_isr. It would be very kind if you could help me with the following questions: - Are some of my assumptions/ideas above completely wrong? - Which part of the code should schedule the IRQ threads? (__ipipe_run_isr only "kicks" them afaik) - Where should ipipe_suspend_domain() hand control over to another domain (i.e. schedule in the other domain because the higher priority domain has suspended itself)? - Should I handle the Linux System timer differently from the other interrupts so that it is not subject to IRQ threading? Best Regards, Peter -- Peter Schüller Theobroma Systems Design und Consulting GmbH Gutheil-Schoder-Gasse 17, A-1230 Vienna, Austria Phone: +43 (1) 2369893-403, Fax: +43 (1) 2369893-9-403 http://www.theobroma-systems.com _______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
