Introducing the Strong APA Scheduler

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Sep 7 14:15:52 UTC 2020


On 07/09/2020 16:09, Richi Dubey wrote:

>     Did you
>     use rtems-test before?
>
> No. I'll do it now.
>
> I am individually testing each smp test for now on this patch:
You should run all tests that doesn't explicitly configure a scheduler 
with your new implementation.
> ---
>  cpukit/include/rtems/confdefs/scheduler.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/cpukit/include/rtems/confdefs/scheduler.h 
> b/cpukit/include/rtems/confdefs/scheduler.h
> index 9305fc2d90..a93e765e53 100644
> --- a/cpukit/include/rtems/confdefs/scheduler.h
> +++ b/cpukit/include/rtems/confdefs/scheduler.h
> @@ -55,7 +55,7 @@
>    && !defined(CONFIGURE_SCHEDULER_STRONG_APA) \
>    && !defined(CONFIGURE_SCHEDULER_USER)
>    #if defined(RTEMS_SMP) && _CONFIGURE_MAXIMUM_PROCESSORS > 1
> -    #define CONFIGURE_SCHEDULER_EDF_SMP
> +    #define CONFIGURE_SCHEDULER_STRONG_APA
>    #else
>      #define CONFIGURE_SCHEDULER_PRIORITY
>    #endif
> -- 
>
> -----------------------------------------------------------------------------------
> because your suggested patch gives this error:
>
>
> -----------------------------------------------------------------------------------
> In file included from 
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/confdefs/scheduler.h:64:0,
>                  from 
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/confdefs/threads.h:48,
>                  from 
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/confdefs/objectsposix.h:47,
>                  from 
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/confdefs.h:77,
>                  from 
> /home/richi/quick-start/src/rtems/c/src/../../testsuites/samples/base_sp/system.h:39,
>                  from 
> /home/richi/quick-start/src/rtems/c/src/../../testsuites/samples/base_sp/init.c:15:
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/scheduler.h:260:37: 
> error: 'CONFIGURE_MAXIMUM_PROCESSORS' undeclared here (not in a 
> function); did you mean '_CONFIGURE_MAXIMUM_PROCESSORS'?
>        Scheduler_strong_APA_CPU CPU[ CONFIGURE_MAXIMUM_PROCESSORS ]; \
>                                      ^
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/confdefs/scheduler.h:149:7: 
> note: in expansion of macro 'RTEMS_SCHEDULER_STRONG_APA'
>        RTEMS_SCHEDULER_STRONG_APA( \
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/richi/quick-start/src/rtems/cpukit/include/rtems/confdefs/scheduler.h:236:3: 
> note: in expansion of macro 'CONFIGURE_SCHEDULER'
>    CONFIGURE_SCHEDULER;
>    ^~~~~~~~~~~~~~~~~~~
> Makefile:939: recipe for target 'base_sp/base_sp-init.o' 
> failedp-init.o' failed
>
> -----------------------------------------------------------------------------------
>
> This is because single processor scheduler doesn't 
> have CONFIGURE_MAXIMUM_PROCESSORS defined, So, would you like for me 
> to make separate definition of CONFIGURE_SCHEDULER_STRONG_APA in 
> cpukit/include/rtems/scheduler.h for a single processor system or does 
> the current version that'd work only for SMP processor serve the purpose?

Maybey add an

#ifndef CONFIGURE_MAXIMUM_PROCESSORS

#define CONFIGURE_MAXIMUM_PROCESSORS 1

#endif

before the default scheduler selection.



More information about the devel mailing list