Re: [PATCH 6/6] config: Remove CONFIGURE_DISABLE_SMP_CONFIGURATION

2020-02-15 Thread Sebastian Huber

Hello Joel,

On 15/02/2020 15:12, Joel Sherrill wrote:
Another historical detail for the commit message is that even in SMP 
builds, uniprocesor tests used a uniprocesor schedule. It took us a 
while to decide that the uniprocesor tests should behave the same with 
the proper SMP scheduler.


This is a pretty fundamental realisation and probably is worth 
capturing as a guiding principle for our tests.
I think I understand what you mean, however, I have difficulties to 
formulate this as a commit message part.

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Re: [PATCH 6/6] config: Remove CONFIGURE_DISABLE_SMP_CONFIGURATION

2020-02-15 Thread Joel Sherrill
Another historical detail for the commit message is that even in SMP
builds, uniprocesor tests used a uniprocesor schedule. It took us a while
to decide that the uniprocesor tests should behave the same with the proper
SMP scheduler.

This is a pretty fundamental realisation and probably is worth capturing as
a guiding principle for our tests.

On Sat, Feb 15, 2020, 6:36 AM Sebastian Huber <
sebastian.hu...@embedded-brains.de> wrote:

> The CONFIGURE_DISABLE_SMP_CONFIGURATION configuration option and
> rtems_configuration_is_smp_enabled() were added during the SMP support
> development cycle as a workaround to fix some testsuite failures in SMP
> configurations.  All use cases were replaced with tests for specific
> conditions.  The configuration option and test macro were undocumented.
>
> Close #3876.
> ---
>  cpukit/include/rtems/confdefs.h   | 19
> ---
>  cpukit/include/rtems/config.h | 13 -
>  cpukit/include/rtems/score/smp.h  | 13 -
>  testsuites/ada/support/initimpl.h |  2 --
>  testsuites/libtests/block08/system.h  |  2 --
>  testsuites/libtests/cpuuse/system.h   |  2 --
>  testsuites/libtests/rtmonuse/system.h |  1 -
>  testsuites/libtests/termios05/init.c  |  2 --
>  testsuites/smptests/smpunsupported01/init.c   |  2 --
>  testsuites/sptests/sp01/system.h  |  2 --
>  testsuites/sptests/sp04/system.h  |  2 --
>  testsuites/sptests/sp07/system.h  |  2 --
>  testsuites/sptests/sp08/init.c|  2 --
>  testsuites/sptests/sp12/system.h  |  2 --
>  testsuites/sptests/sp13/system.h  |  2 --
>  testsuites/sptests/sp14/system.h  |  2 --
>  testsuites/sptests/sp16/system.h  |  2 --
>  testsuites/sptests/sp20/system.h  |  2 --
>  testsuites/sptests/sp37/system.h  |  2 --
>  testsuites/sptests/sp65/sp65impl.h|  2 --
>  testsuites/sptests/spcbssched01/system.h  |  2 --
>  testsuites/sptests/spcbssched02/system.h  |  2 --
>  testsuites/sptests/spcbssched03/system.h  |  2 --
>  testsuites/sptests/spedfsched01/system.h  |  2 --
>  testsuites/sptests/spedfsched02/system.h  |  2 --
>  testsuites/sptests/spedfsched03/system.h  |  2 --
>  testsuites/sptests/spfatal29/init.c   |  2 --
>  testsuites/sptests/spfifo03/init.c|  2 --
>  testsuites/sptests/spfifo05/init.c|  2 --
>  .../sptests/spintrcritical06/spintrcritical06impl.h   |  2 --
>  testsuites/sptests/spintrcritical15/init.c|  2 --
>  testsuites/sptests/spmrsp01/init.c|  2 --
>  testsuites/sptests/spsimplesched02/init.c |  2 --
>  testsuites/tmtests/tm04/system.h  |  2 --
>  testsuites/tmtests/tm08/system.h  |  2 --
>  testsuites/tmtests/tm15/system.h  |  2 --
>  testsuites/tmtests/tm20/system.h  |  2 --
>  testsuites/tmtests/tm22/system.h  |  2 --
>  testsuites/tmtests/tm24/system.h  |  2 --
>  39 files changed, 116 deletions(-)
>
> diff --git a/cpukit/include/rtems/confdefs.h
> b/cpukit/include/rtems/confdefs.h
> index eb837fd389..d45287591e 100644
> --- a/cpukit/include/rtems/confdefs.h
> +++ b/cpukit/include/rtems/confdefs.h
> @@ -159,18 +159,6 @@ extern "C" {
>#define _CONFIGURE_MAXIMUM_PROCESSORS 1
>  #endif
>
> -/*
> - * An internal define to indicate that this is an SMP application
> - * configuration.
> - */
> -#ifdef RTEMS_SMP
> -  #if !defined(CONFIGURE_DISABLE_SMP_CONFIGURATION)
> -#define _CONFIGURE_SMP_APPLICATION
> -  #elif _CONFIGURE_MAXIMUM_PROCESSORS > 1
> -#error "CONFIGURE_DISABLE_SMP_CONFIGURATION and
> CONFIGURE_MAXIMUM_PROCESSORS > 1 makes no sense"
> -  #endif
> -#endif
> -
>  /*
>   * This sets up the resources for the FIFOs/pipes.
>   */
> @@ -2576,13 +2564,6 @@ struct _reent *__getreent(void)
>#endif
>
>#ifdef RTEMS_SMP
> -const bool _SMP_Is_enabled =
> -  #ifdef _CONFIGURE_SMP_APPLICATION
> -true;
> -  #else
> -false;
> -  #endif
> -
>  const uint32_t _SMP_Processor_configured_maximum =
>_CONFIGURE_MAXIMUM_PROCESSORS;
>#endif
> diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
> index 4811d0e704..e82c7abf11 100644
> --- a/cpukit/include/rtems/config.h
> +++ b/cpukit/include/rtems/config.h
> @@ -150,19 +150,6 @@ uint32_t rtems_configuration_get_maximum_extensions(
> void );
>  NULL
>  #endif
>
> -/**
> - * @brief Returns true if the SMP mode of operation is enabled, and false
> - * otherwise.
> - *
> - * In uni-processor configurations this is

[PATCH 6/6] config: Remove CONFIGURE_DISABLE_SMP_CONFIGURATION

2020-02-15 Thread Sebastian Huber
The CONFIGURE_DISABLE_SMP_CONFIGURATION configuration option and
rtems_configuration_is_smp_enabled() were added during the SMP support
development cycle as a workaround to fix some testsuite failures in SMP
configurations.  All use cases were replaced with tests for specific
conditions.  The configuration option and test macro were undocumented.

Close #3876.
---
 cpukit/include/rtems/confdefs.h   | 19 ---
 cpukit/include/rtems/config.h | 13 -
 cpukit/include/rtems/score/smp.h  | 13 -
 testsuites/ada/support/initimpl.h |  2 --
 testsuites/libtests/block08/system.h  |  2 --
 testsuites/libtests/cpuuse/system.h   |  2 --
 testsuites/libtests/rtmonuse/system.h |  1 -
 testsuites/libtests/termios05/init.c  |  2 --
 testsuites/smptests/smpunsupported01/init.c   |  2 --
 testsuites/sptests/sp01/system.h  |  2 --
 testsuites/sptests/sp04/system.h  |  2 --
 testsuites/sptests/sp07/system.h  |  2 --
 testsuites/sptests/sp08/init.c|  2 --
 testsuites/sptests/sp12/system.h  |  2 --
 testsuites/sptests/sp13/system.h  |  2 --
 testsuites/sptests/sp14/system.h  |  2 --
 testsuites/sptests/sp16/system.h  |  2 --
 testsuites/sptests/sp20/system.h  |  2 --
 testsuites/sptests/sp37/system.h  |  2 --
 testsuites/sptests/sp65/sp65impl.h|  2 --
 testsuites/sptests/spcbssched01/system.h  |  2 --
 testsuites/sptests/spcbssched02/system.h  |  2 --
 testsuites/sptests/spcbssched03/system.h  |  2 --
 testsuites/sptests/spedfsched01/system.h  |  2 --
 testsuites/sptests/spedfsched02/system.h  |  2 --
 testsuites/sptests/spedfsched03/system.h  |  2 --
 testsuites/sptests/spfatal29/init.c   |  2 --
 testsuites/sptests/spfifo03/init.c|  2 --
 testsuites/sptests/spfifo05/init.c|  2 --
 .../sptests/spintrcritical06/spintrcritical06impl.h   |  2 --
 testsuites/sptests/spintrcritical15/init.c|  2 --
 testsuites/sptests/spmrsp01/init.c|  2 --
 testsuites/sptests/spsimplesched02/init.c |  2 --
 testsuites/tmtests/tm04/system.h  |  2 --
 testsuites/tmtests/tm08/system.h  |  2 --
 testsuites/tmtests/tm15/system.h  |  2 --
 testsuites/tmtests/tm20/system.h  |  2 --
 testsuites/tmtests/tm22/system.h  |  2 --
 testsuites/tmtests/tm24/system.h  |  2 --
 39 files changed, 116 deletions(-)

diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index eb837fd389..d45287591e 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -159,18 +159,6 @@ extern "C" {
   #define _CONFIGURE_MAXIMUM_PROCESSORS 1
 #endif
 
-/*
- * An internal define to indicate that this is an SMP application
- * configuration.
- */
-#ifdef RTEMS_SMP
-  #if !defined(CONFIGURE_DISABLE_SMP_CONFIGURATION)
-#define _CONFIGURE_SMP_APPLICATION
-  #elif _CONFIGURE_MAXIMUM_PROCESSORS > 1
-#error "CONFIGURE_DISABLE_SMP_CONFIGURATION and 
CONFIGURE_MAXIMUM_PROCESSORS > 1 makes no sense"
-  #endif
-#endif
-
 /*
  * This sets up the resources for the FIFOs/pipes.
  */
@@ -2576,13 +2564,6 @@ struct _reent *__getreent(void)
   #endif
 
   #ifdef RTEMS_SMP
-const bool _SMP_Is_enabled =
-  #ifdef _CONFIGURE_SMP_APPLICATION
-true;
-  #else
-false;
-  #endif
-
 const uint32_t _SMP_Processor_configured_maximum =
   _CONFIGURE_MAXIMUM_PROCESSORS;
   #endif
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index 4811d0e704..e82c7abf11 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -150,19 +150,6 @@ uint32_t rtems_configuration_get_maximum_extensions( void 
);
 NULL
 #endif
 
-/**
- * @brief Returns true if the SMP mode of operation is enabled, and false
- * otherwise.
- *
- * In uni-processor configurations this is a compile-time constant which
- * evaluates to false.
- *
- * @retval true SMP mode of operation is enabled.
- * @retval false Otherwise.
- */
-#define rtems_configuration_is_smp_enabled() \
-  (_SMP_Is_enabled)
-
 /**
  * @brief Returns the configured maximum count of processors.
  *
diff --git a/cpukit/include/rtems/score/smp.h b/cpukit/include/rtems/score/smp.h
index 36cfd981ab..2722fbdcee 100644
--- a/cpukit/include/rtems/score/smp.h
+++ b/cpukit/include/rtems/score/smp.h
@@ -36,19 +36,6 @@ extern "C" {
  * @{
  */
 
-/**
- * @brief Indicates if SMP is enabled.
- *
- * In SMP configurations, this constant is defined by