Hi All,

I have more info, but still no idea as to where things are broken.
 
In trying to run the RTAI latency test, the program ends up in a loop 
processing schedule_tail 
& schedule_head events until the test gives up.  Both events are "caught" in 
the 
rtai/nucleus/shadow.c set of event handlers.  The _head event is caught from 
the handler
called in the _adeos_handle_events routine.  The _tail event is caught from the 
_adeos_suspend_domain functions' event handler block.  The first is dispatched 
from 
the root domain, whereas the second is from the RTAI domain.
 
The schedule_tail event happens first.
 
After several seconds of this loop, the latency test fails with a "failed to 
create display task, code -38".  
The rt_task_create function wasn't reached (the printk statement which is the 
first line doesn't get printed), 
so this must be comming from one of the module_init functions.
 
The shadow.c routines both report handling the events as the root domain.
 
At the moment I'm stuck trying to figure out which routine is trying to spawn a 
task, and why it's failing.
 
ANY help would be greatly appreciated!
 
TIA.
 
Terry

________________________________

From: [EMAIL PROTECTED] on behalf of Reynolds, Terry (Contractor-SIMTECH)
Sent: Tue 3/15/2005 10:24 AM
To: adeos
Subject: [Adeos-main] ppc64 port questions



Hi All,

I apologize for the long posting, but wanted to give sufficient detail for 
folks to see what's going on.

I have made a good bit of progress on the ppc64 port.  I'm trying to get the 
RTAI example test latency to work. 
Things fail in a way that looks like I've missed a function somewhere.   I've 
added quite a few printk statements
in trying to track down the problem.

What I'm seeing is:

Root domain registered.
Pipeline started.

Start latency test:

RTAI[hal] domain registered:
   switch from root to RTAI[hal].
   calls suspend.
   switches back to root.

Domain IShield registered.
   root switches to IShield
  IShield suspends & switches back to root.

RTAI[nucleus] RTAI/fusion v0.6.9 started
  all initialization routines seem to run OK.
 __fusion_skin_init processes all the way through and exits without error.

THEN

In Root:
   sched.c's need_resched: calls -
   adeos_schedule_tail, which calls __adeos_handle_event with  
ADEOS_SCHEDULE_TAIL

   __adeos_handle_event does a switch_to RTAI[hal] domain.
   it resumes in suspend_domain, from which it returns to rthal_domain_entry.
   At that point it is in a loop constantly calling suspend_domain.
   So, RTAI[hal] instantly suspends again, switching back to root.
   Root ends up back in need_resced, and this process repeats several hundred 
times,
   until the latency test gives up and exits with a "failed to create display 
task, code -38"

IShield is unregistered.
RTAI/fusion stops.
RTAI is unregistered.
RTAI[hal] is unloaded.

At least things seem to exit gracefully!

So, my questions are:

  Did any of that description look totally wrong? 

   What is suppose to cause RTAI[hal] to break out of the suspend_domain loop,
  and process the event being passed in from root via the schedule_tail? 
  Should it be suspended at a different place?

I'm not sure if this is an Adeos or an RTAI problem at this point.


TIA!

Terry.




_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main



Reply via email to