[ECOS] Multiple runnable DSR's

Jonathan Larmour jifl@eCosCentric.com
Sun Jan 26 22:24:00 GMT 2003

Nick Garnett wrote:
> To expand on this a little. My original intention for DSRs was that
> they should contains relatively small amounts of code: just signal a
> condition variable, post to a semaphore, send a message. They are all
> mostly still like this. The only DSR that does anything more
> substantial is that for the timer, running alarm functions, and then
> those should also conform to the DSR model and be minimal.
> The pupose of a DSR is to act as an intermediary between the ISR world
> and the thread world. The real effect of running a DSR is to cause a
> thread to be scheduled. Since all DSRs will be run before any thread
> gets to start, it really does not matter what order they run in.

Of course we have already written distinctly non-trivial DSRs ourselves, 
so we can hardly be said to be practising what we're preaching :-).

Perhaps it may not be unreasonable to have a default disabled 
configuration option which sorts DSRs according to the priority used on 
interrupt creation as they are inserted (for 
CYGIMP_KERNEL_INTERRUPTS_DSRS_LIST only). It would be pretty simple, and 
would silence those who think it does matter what order they run in :-).[1]

[1] Actually you can see their point in the existing system where DSRs do 
do real work, like the serial or net drivers. That we don't do that quite 
right of course is why the high-minded principles fall down.
eCosCentric       http://www.eCosCentric.com/       <info@eCosCentric.com>
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine

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

More information about the Ecos-discuss mailing list