[PATCH 1/8] score: Add CPU_MAXIMUM_PROCESSORS

Joel Sherrill joel at rtems.org
Thu Mar 3 15:10:52 UTC 2016


How does this interact with the pthread affinity and cpuset size?

If we end up with a port that can support more than 32, then do we
increase the cpuset size or make applications more to variable cpuset's?

What's the intended use?

On Thu, Mar 3, 2016 at 8:47 AM, Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> Maximum number of processors of all systems supported by this CPU port.
> ---
>  cpukit/score/cpu/arm/rtems/score/cpu.h      | 2 ++
>  cpukit/score/cpu/bfin/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/epiphany/rtems/score/cpu.h | 2 ++
>  cpukit/score/cpu/i386/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/lm32/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/m32c/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/m68k/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/mips/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/moxie/rtems/score/cpu.h    | 2 ++
>  cpukit/score/cpu/nios2/rtems/score/cpu.h    | 2 ++
>  cpukit/score/cpu/no_cpu/rtems/score/cpu.h   | 6 ++++++
>  cpukit/score/cpu/or1k/rtems/score/cpu.h     | 2 ++
>  cpukit/score/cpu/powerpc/rtems/score/cpu.h  | 2 ++
>  cpukit/score/cpu/sh/rtems/score/cpu.h       | 2 ++
>  cpukit/score/cpu/sparc/rtems/score/cpu.h    | 2 ++
>  cpukit/score/cpu/sparc64/rtems/score/cpu.h  | 2 ++
>  cpukit/score/cpu/v850/rtems/score/cpu.h     | 2 ++
>  17 files changed, 38 insertions(+)
>
> diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h
> b/cpukit/score/cpu/arm/rtems/score/cpu.h
> index 89b7609..4380590 100644
> --- a/cpukit/score/cpu/arm/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/arm/rtems/score/cpu.h
> @@ -204,6 +204,8 @@
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /** @} */
>
>  #ifdef ARM_MULTILIB_HAS_THREAD_ID_REGISTER
> diff --git a/cpukit/score/cpu/bfin/rtems/score/cpu.h
> b/cpukit/score/cpu/bfin/rtems/score/cpu.h
> index 3302f47..e4ad87f 100644
> --- a/cpukit/score/cpu/bfin/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/bfin/rtems/score/cpu.h
> @@ -354,6 +354,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   *
> diff --git a/cpukit/score/cpu/epiphany/rtems/score/cpu.h
> b/cpukit/score/cpu/epiphany/rtems/score/cpu.h
> index 896af12..e433e19 100644
> --- a/cpukit/score/cpu/epiphany/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/epiphany/rtems/score/cpu.h
> @@ -795,6 +795,8 @@ typedef struct {
>  #define CPU_EXCEPTION_FRAME_SIZE 260
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  #ifndef ASM
>  typedef uint16_t Priority_bit_map_Word;
>
> diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h
> b/cpukit/score/cpu/i386/rtems/score/cpu.h
> index d6828dc..9ad9cf2 100644
> --- a/cpukit/score/cpu/i386/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/i386/rtems/score/cpu.h
> @@ -129,6 +129,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  #define I386_CONTEXT_CONTROL_EFLAGS_OFFSET 0
>  #define I386_CONTEXT_CONTROL_ESP_OFFSET 4
>  #define I386_CONTEXT_CONTROL_EBP_OFFSET 8
> diff --git a/cpukit/score/cpu/lm32/rtems/score/cpu.h
> b/cpukit/score/cpu/lm32/rtems/score/cpu.h
> index 3ddae7c..1a22da8 100644
> --- a/cpukit/score/cpu/lm32/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/lm32/rtems/score/cpu.h
> @@ -348,6 +348,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   *
> diff --git a/cpukit/score/cpu/m32c/rtems/score/cpu.h
> b/cpukit/score/cpu/m32c/rtems/score/cpu.h
> index 59e9b4e..de0ead5 100644
> --- a/cpukit/score/cpu/m32c/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/m32c/rtems/score/cpu.h
> @@ -371,6 +371,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   *
> diff --git a/cpukit/score/cpu/m68k/rtems/score/cpu.h
> b/cpukit/score/cpu/m68k/rtems/score/cpu.h
> index 06d711a..470391a 100644
> --- a/cpukit/score/cpu/m68k/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/m68k/rtems/score/cpu.h
> @@ -115,6 +115,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  #if ( CPU_HARDWARE_FP == TRUE ) && !defined( __mcoldfire__ )
>    #if defined( __mc68060__ )
>      #define M68K_FP_STATE_SIZE 16
> diff --git a/cpukit/score/cpu/mips/rtems/score/cpu.h
> b/cpukit/score/cpu/mips/rtems/score/cpu.h
> index cb66b89..67a9ea6 100644
> --- a/cpukit/score/cpu/mips/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/mips/rtems/score/cpu.h
> @@ -313,6 +313,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures
>   *
> diff --git a/cpukit/score/cpu/moxie/rtems/score/cpu.h
> b/cpukit/score/cpu/moxie/rtems/score/cpu.h
> index 9f0b9b4..ad40ff4 100644
> --- a/cpukit/score/cpu/moxie/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/moxie/rtems/score/cpu.h
> @@ -285,6 +285,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   *
> diff --git a/cpukit/score/cpu/nios2/rtems/score/cpu.h
> b/cpukit/score/cpu/nios2/rtems/score/cpu.h
> index 1008865..0dd7ed4 100644
> --- a/cpukit/score/cpu/nios2/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/nios2/rtems/score/cpu.h
> @@ -111,6 +111,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  #ifndef ASM
>
>  typedef struct {
> diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> index 1c29bd6..a56bc17 100644
> --- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h
> @@ -391,6 +391,12 @@ extern "C" {
>   */
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +/**
> + * @brief Maximum number of processors of all systems supported by this
> CPU
> + * port.
> + */
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   *
> diff --git a/cpukit/score/cpu/or1k/rtems/score/cpu.h
> b/cpukit/score/cpu/or1k/rtems/score/cpu.h
> index 7364343..5d7a72f 100644
> --- a/cpukit/score/cpu/or1k/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/or1k/rtems/score/cpu.h
> @@ -788,6 +788,8 @@ typedef struct {
>  #define CPU_SIZEOF_POINTER 4
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  #ifndef ASM
>  typedef uint32_t CPU_Counter_ticks;
>  typedef uint16_t Priority_bit_map_Word;
> diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h
> b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
> index f988f8a..0f5c8d8 100644
> --- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
> @@ -173,6 +173,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   */
> diff --git a/cpukit/score/cpu/sh/rtems/score/cpu.h
> b/cpukit/score/cpu/sh/rtems/score/cpu.h
> index 2bddba7..fd657dd 100644
> --- a/cpukit/score/cpu/sh/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/sh/rtems/score/cpu.h
> @@ -260,6 +260,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  Processor defined structures required for cpukit/score.
>   */
> diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h
> b/cpukit/score/cpu/sparc/rtems/score/cpu.h
> index c2b5f4c..96b6ac5 100644
> --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h
> @@ -363,6 +363,8 @@ typedef struct {
>    #define CPU_PER_CPU_CONTROL_SIZE 4
>  #endif
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /**
>   * @brief Offset of the CPU_Per_CPU_control::isr_dispatch_disable field
>   * relative to the Per_CPU_Control begin.
> diff --git a/cpukit/score/cpu/sparc64/rtems/score/cpu.h
> b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
> index aa756f9..a669c54 100644
> --- a/cpukit/score/cpu/sparc64/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/sparc64/rtems/score/cpu.h
> @@ -209,6 +209,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  /*
>   *  This structure represents the organization of the minimum stack frame
>   *  for the SPARC.  More framing information is required in certain
> situaions
> diff --git a/cpukit/score/cpu/v850/rtems/score/cpu.h
> b/cpukit/score/cpu/v850/rtems/score/cpu.h
> index e910ae1..36e271c 100644
> --- a/cpukit/score/cpu/v850/rtems/score/cpu.h
> +++ b/cpukit/score/cpu/v850/rtems/score/cpu.h
> @@ -348,6 +348,8 @@ extern "C" {
>
>  #define CPU_PER_CPU_CONTROL_SIZE 0
>
> +#define CPU_MAXIMUM_PROCESSORS 32
> +
>  typedef struct {
>    /* There is no CPU specific per-CPU state */
>  } CPU_Per_CPU_control;
> --
> 1.8.4.5
>
> _______________________________________________
> 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/20160303/753d3de9/attachment-0002.html>


More information about the devel mailing list