[Bug 1743] Simple priority plug-in scheduler

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Sun Feb 27 17:31:25 UTC 2011


https://www.rtems.org/bugzilla/show_bug.cgi?id=1743

--- Comment #2 from Joel Sherrill <joel.sherrill at oarcorp.com> 2011-02-27 11:31:24 CST ---
(In reply to comment #1)
> cpukit/score/include/rtems/score/schedulersimple.h:
> +    _Scheduler_priorisimple_t        /* extract entry point */ \
> mangled spelling? I think you mean _Scheduler_simple_Extract

Yeah.  I pinged her on that.

> cpukit/score/inline/rtems/score/schedulersimple.inl:
> _Scheduler_simple_Ready_queue_Enqueue_first
> Don't need to loop here, just put it on the front of the ready queue. This
> function isn't used often afaik.

But it has to do the right thing even if it is only used once.  This routine is
supposed to enqueue a task at the front of its priority group.  So you can't
just prepend it.  

Remember this scheduler implementation is functionally identical to the default
scheduler except that it uses a single ordered chain.  So we have to end up
with a list that looks like this:

Hi1 Med1 Med2 Med3 Lo1 IDLE

enqueue Med4 needs to put it after Med3.
enqueue_first Med4 needs to put it after Hi1.

This scheduler honors both priority order and FIFO within priority.

> cpukit/score/src/schedulerpriorityextract.c:
> cpukit/score/src/schedulerpriorityupdate.c:
> Whitespace fixes are distracting

She will commit those separately and update the patch.

> cpukit/score/src/schedulersimple.c:
> _Scheduler_simple_Initialize
> +  void *f;
> Why not of type Chain_Control *?

Two of the three uses in this method require void *.

-- 
Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the bugs mailing list