[Bug 1647] Modular SuperCore Scheduler

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Fri Nov 12 12:53:31 UTC 2010


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

--- Comment #37 from Joel Sherrill <joel.sherrill at oarcorp.com> 2010-11-12 06:53:25 CST ---
(In reply to comment #36)
> (In reply to comment #35)
> > (In reply to comment #34)
> > > > Why is this single time higher?  There was no change but we added about 50
> > > > instructions.
> > > > 
> > > > 21c23
> > > > < rtems_semaphore_obtain: not available -- caller blocks 700
> > > > ---
> > > > > rtems_semaphore_obtain: not available -- caller blocks 751
> > > 
> > > I should have had more coffee before I wrote that. Let me try again.  The above
> > > is an example of a case which includes the worst case critical section in
> > > RTEMS. It appears that it is ~50 instructions longer.  You have mentioned some
> > > overhead due to the indirect calls and loss of some inlining but I am having
> > > trouble seeing that account for 50 instructions.  Help me out.
> > 
> > Inlining the scheduler and ready queue functions saves most of these
> > instructions, as I suspected.  The overheads probably are not observed on the
> > sparc since function calls are cheap (until the register windows are all used).
> > 
> > The latency of tm02 is tracking across multiple scheduler calls, so the
> > overheads accumulate.
> Inlining solely the ready queue functions saves about 30% of the overhead seen
> in this test case (cuts down to around 734 cycles). Is this good enough
> performance-wise?

That sounds like a great improvement.  Are there any other tmXX results which
look to have gotten significantly worse?

If not, then I think we are about ready to make a "final call" and commit this.

> Such a change does not really impede the flexibility intended in the modular
> scheduler design.  Essentially it means that scheduler implementations must
> directly invoke ready queue implementations, which is reasonable to require
> IMO.

I think this is perfectly reasonable.  Use configures scheduler and the
scheduler just uses what the scheduler uses.

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