This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Multiple runnable DSR's


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]

Jifl
[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]