[ECOS] Re: DSR Scheduling Problem

Grant Edwards grante@visi.com
Sat Jan 14 02:12:00 GMT 2006


On 2006-01-14, Jay Foster <jay@systech.com> wrote:

> I still think that FIFO queuing of the DSRs is better than
> LIFO queuing, because in the absence of any DSR priority
> information, the best that can be done is temporal priority
> (ie FIFO).

That happens to work for your application, but I don't see how
you can say that FIFO is best in the general case.

> This prevents the case (that I'm seeing) where a lower
> priority ISR's DSR preempts a higher priority ISR's DSR (the
> priority is lost in the LIFO DSR queue).

I still maintain that your application is either broken or you
don't have enough CPU.  If one interrupts source requires so
much DSR time that others can't run, then there is simply
something wrong.  You seem to prefer a tx underrun error to an
rx overrun error.  I guarantee you're going to get one or the
other.  On the systems I work on, either is equally fatal, so
it is not the case that FIFO is better than LIFO.  Both work
equally well.

> The default is to use the LIST, which is LIFO, but the TABLE
> implementation is FIFO. I switched my configuration to the
> TABLE implementation, and my code works.  So a second reason
> to use FIFO for the DSR LIST implementation is to match the
> behavior of the TABLE implementation.

As long as the FIFO list approach doesn't require any more
overhead, it's fine with me.  Like I said, if you're not
allowed to starge any of the DSRs, either works equally well.

-- 
Grant Edwards                   grante             Yow!  Imagine--a WORLD
                                  at               without POODLES...
                               visi.com            


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list