Need help understand how the scheduler table entries work
Richi Dubey
richidubey at gmail.com
Tue Aug 11 06:41:19 UTC 2020
This really helped. Thank you.
There is not really anything to change about it. You specialize the
> scheduler by the Scheduler_Context and Scheduler_Operations
> structures. You still just pass through the context base to the
> scheduler table.
I understand. The Ready queue per priority that was used earlier (link
<https://git.rtems.org/rtems/tree/cpukit/include/rtems/score/schedulerstrongapa.h#n59>)
has to be removed. Hence the question.
Thank you.
On Mon, Aug 10, 2020 at 9:04 PM Gedare Bloom <gedare at rtems.org> wrote:
> On Mon, Aug 10, 2020 at 9:10 AM Richi Dubey <richidubey at gmail.com> wrote:
> >
> > Hi,
> >
> > I want your help to figure out how the table entries for a scheduler
> work.
> >
> > For STRONG_APA scheduler, the flow is :
> > link
> >
> -------------------------------------------------------------------------------------------------------
> > #define RTEMS_SCHEDULER_TABLE_STRONG_APA( name, obj_name ) \
> > { \
> > &SCHEDULER_STRONG_APA_CONTEXT_NAME( name ).Base.Base.Base, \
> > SCHEDULER_STRONG_APA_ENTRY_POINTS, \
> > RTEMS_ARRAY_SIZE( \
> > SCHEDULER_STRONG_APA_CONTEXT_NAME( name ).Ready \
> > ) - 1, \
> > ( obj_name ) \
> > SCHEDULER_CONTROL_IS_NON_PREEMPT_MODE_SUPPORTED( false ) \
> > }
> >
> >
> -------------------------------------------------------------------------------------------------------
> > which is used for:
> > link
> >
> -------------------------------------------------------------------------------------------------------
> >
> > #ifdef CONFIGURE_SCHEDULER_STRONG_APA
> > #ifndef CONFIGURE_SCHEDULER_NAME
> > #define CONFIGURE_SCHEDULER_NAME rtems_build_name( 'M', 'A', 'P',
> 'A' )
> > #endif
> >
> > #ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
> > #define CONFIGURE_SCHEDULER \
> > RTEMS_SCHEDULER_STRONG_APA( \
> > dflt, \
> > CONFIGURE_MAXIMUM_PRIORITY + 1 \
> > )
> >
> > #define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
> > RTEMS_SCHEDULER_TABLE_STRONG_APA( dflt, CONFIGURE_SCHEDULER_NAME )
> > #endif
> > #endif
> >
> -------------------------------------------------------------------------------------------------------
> >
> > which is eventually used for:
> >
> > link
> >
> -------------------------------------------------------------------------------------------------------
> > const Scheduler_Control _Scheduler_Table[] = {
> > CONFIGURE_SCHEDULER_TABLE_ENTRIES
> > };
> >
> >
> -------------------------------------------------------------------------------------------------------
> >
> > I do not understand what the Scheduler_Table[] or the
> SCHEDULER_TABLE_ENTRIES should contain.
>
> The type definition of the _Scheduler_Table[] is Scheduler_Control.
> This structure is defined in
> cpukit/include/rtems/score/scheduler.h:269
>
> > I need help with this because I have to change the
> RTEMS_SCHEDULER_TABLE_STRONG_APA since I am changing some of the variables
> in the Scheduler_strong_APA_Context.
> >
> There is not really anything to change about it. You specialize the
> scheduler by the Scheduler_Context and Scheduler_Operations
> structures. You still just pass through the context base to the
> scheduler table.
>
> > Thank you,
> > Richi.
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200811/73dbc9a7/attachment.html>
More information about the devel
mailing list