> > > > If the IRQ is delayed, I don't understand the following situation > with a periodic task : > > A periodic task is running under RTL3.0-2.2.19 on a Pentium-II board with integrated > ethernet chip (Intel PRO/100+). > The task is setup to run every 3ms with a runtime of approx. 300us. As long as there >is > no traffic on the network part where the board is attached to, the start time and >run time of > the task is stable. > As soon as the ethernet load on the LAN segment gets more heavy, the start time of > the task varies around 250us and the run time of the task varies around 100us. > The traffic on the LAN does not belong to my board, it's a file transfer between > to other nodes on the network. > The driver for the ethernet chip is loaded as a linux driver (not a RTL driver). > > What can I do to get stable start and run time of the task ? > > Do I have to disable the interrupt of the chip while my RT task is running or is > this done automatically by RT-Linux when my RT task gets active ? > interrupts are not disabled automatically and you should not do this unless you realy need it (that is for short tasks its ok )
the 290us start delay is high - very high - there may be some problem with the way it is set up but I can't tell from the info here, but I would expect this to be a hardware problem (a 133MHz ST586 does better during a ping-flood....). The variance in runtime is simply due to the interception code for the NIC/HD/mouse/keyboard/-interrupt being run a few times and thus your rt-task is bothered by the network trafic - if the thread runtime needs to be deterministic (but relying on "implicid timings" is always a bad idea) then you would need to run the task with interrupts disabled If you care about the curent interrupt controler state save the flags (probably what you want) void rtl_no_interrupts(rtl_irqstate_t state); void rtl_restore_interrupts(rtl_irqstate_t state); If you don't care about the interrupts state you can brute-force disable and enable the interrupts with void rtl_stop_interrupts(); void rtl_allow_interrupts(); hofrat -- [rtl] --- To unsubscribe: echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] -- For more information on Real-Time Linux see: http://www.rtlinux.org/