[Bug 1906] CBS scheduler implementation

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Tue Sep 13 21:51:03 UTC 2011


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

--- Comment #8 from Joel Sherrill <joel.sherrill at oarcorp.com> 2011-09-13 16:51:01 CDT ---
(In reply to comment #6)
> (In reply to comment #4)
> > There are some warnings which I think I cleaned up OK.  Prototype for budget
> > overrun callout should be:
> > 
> > void _Scheduler_CBS_Budget_overrun(Thread_Control *the_thread)
> OK
> > 
> > We discussed not using a signal send from score.  I would prefer a callback to
> > be registered.  The use of signals assumes you know that is that the end user
> > wants to do and that the signal chosen doesn't conflict.
> I blindly tried to change it to a callback. However, the difference is that a
> service routine runs in a different context (I assume) because it is invoked
> directly from the budget overrun callback. Thus, the user has to use printk()
> instead of printf() in the callback. It is a little weird, what do you think? 

Not particularly.  The environment has to be defined and documented.  It is 
no different than having a user extension invoked.  Those have very particular
requirements on behavior also.  

If it makes sense for the test code to register a handler which results in
a signal being sent, then that's cool.

If the library needs the signal, we want to avoid that.  Remember an
application
can only have one Classic API signal handler.  

> > 
> > There are warnings in the tests for printf formats.  I fixed those for EDF
> > tests before I committed them.
> I'm fixing it.

This one was easy. Thanks.

> > 
> > If we can address the callback/signal issue, this should be OK to merge. 
> > Double check Doxygen for warnings.
> I do not know how to identify the Doxygen warnings, but I have found two spots
> to fix.

This is a fragment from the script that does it nightly on rtems.org

===========================
 rm -rf b-doc
  mkdir b-doc
  cd b-doc
  $r/configure --target=sparc-rtems4.11 --enable-rtemsbsp=sis \
    --disable-networking --disable-tests >c.log 2>&1
  make -j3 preinstall >b.log 2>&1
  cd sparc-rtems4.11/c/sis/cpukit

  #mv Doxyfile Doxyfile.tmp
  sed -e "s,^OUTPUT_DIRECTORY.*=.*$,OUTPUT_DIRECTORY = ${outdir}-tmp," \
      -e "s,^STRIP_FROM_PATH.*=.*$,STRIP_FROM_PATH = ," \
      -e "s,^INPUT.*=.*lib.*$,INPUT = ," \
    <Doxyfile >../../../sis/lib/include/Doxyfile

  cd ../../../sis/lib/include

  doxygen >${d}/doxy.log 2>&1
===========================

ensure every method has an @brief, @return, etc. 

> > 
> > I would like to get these algorithms merged and documented. :)

FWIW I read the schedule.t chapter today.  It has been updated since the
Scheduler plugin framework went in.  But not since there were multiple
algorithms.  So not too bad (I think) once I am not taking pain killers
and am back on top of things.

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