Please ignore this patch and refer to https://lists.rtems.org/pipermail/devel/2020-September/061766.html.
On Wed, Sep 2, 2020 at 8:56 PM Richi Dubey <richidu...@gmail.com> wrote: > --- > testsuites/smptests/smpstrongapa01/init.c | 62 +++++++++++++++-------- > 1 file changed, 40 insertions(+), 22 deletions(-) > > diff --git a/testsuites/smptests/smpstrongapa01/init.c > b/testsuites/smptests/smpstrongapa01/init.c > index bf8bc05231..3053bed785 100644 > --- a/testsuites/smptests/smpstrongapa01/init.c > +++ b/testsuites/smptests/smpstrongapa01/init.c > @@ -1,4 +1,5 @@ > /* > + * Copyright (c) 2020 Richi Dubey (richidu...@gmail.com) > * Copyright (c) 2016, 2017 embedded brains GmbH. All rights reserved. > * > * embedded brains GmbH > @@ -16,7 +17,7 @@ > #include "config.h" > #endif > > -#include "tmacros.h" > +#include <tmacros.h> > > #include <rtems.h> > > @@ -24,15 +25,22 @@ const char rtems_test_name[] = "SMPSTRONGAPA 1"; > > #define CPU_COUNT 4 > > -#define TASK_COUNT (3 * CPU_COUNT) > +#define TASK_COUNT 5 > > #define P(i) (UINT32_C(2) + i) > > #define ALL ((UINT32_C(1) << CPU_COUNT) - 1) > > -#define IDLE UINT8_C(255) > +#define A(cpu0, cpu1, cpu2, cpu3) ( (cpu3 < 3) | (cpu2 << 2 ) | (cpu1 << > 1) | cpu0 ) > > -#define NAME rtems_build_name('S', 'A', 'P', 'A') > +typedef enum { > + T0, > + T1, > + T2, > + T3, > + T4, > + IDLE > +} task_index; > > typedef struct { > enum { > @@ -43,7 +51,7 @@ typedef struct { > KIND_UNBLOCK > } kind; > > - size_t index; > + task_index index; > > struct { > rtems_task_priority priority; > @@ -65,7 +73,7 @@ typedef struct { > KIND_RESET, \ > 0, \ > { 0 }, \ > - { IDLE, IDLE, IDLE, IDLE } \ > + { IDLE, IDLE, IDLE, IDLE} \ > } > > #define SET_PRIORITY(index, prio, cpu0, cpu1, cpu2, cpu3) \ > @@ -73,7 +81,7 @@ typedef struct { > KIND_SET_PRIORITY, \ > index, \ > { .priority = prio }, \ > - { cpu0, cpu1, cpu2, cpu3 } \ > + { cpu0, cpu1, cpu2, cpu3} \ > } > > #define SET_AFFINITY(index, aff, cpu0, cpu1, cpu2, cpu3) \ > @@ -97,22 +105,29 @@ typedef struct { > KIND_UNBLOCK, \ > index, \ > { 0 }, \ > - { cpu0, cpu1, cpu2, cpu3 } \ > + { cpu0, cpu1, cpu2, cpu3} \ > } > > static const test_action test_actions[] = { > RESET, > - UNBLOCK( 0, 0, IDLE, IDLE, IDLE), > - UNBLOCK( 1, 0, 1, IDLE, IDLE), > - UNBLOCK( 2, 0, 1, 2, IDLE), > - UNBLOCK( 3, 0, 1, 2, 3), > - UNBLOCK( 5, 0, 1, 2, 3), > - SET_PRIORITY( 3, P(4), 0, 1, 2, 3), > - SET_PRIORITY( 5, P(3), 0, 1, 2, 5), > - BLOCK( 5, 0, 1, 2, 3), > - SET_AFFINITY( 5, ALL, 0, 1, 2, 3), > - RESET, > - UNBLOCK( 0, 0, IDLE, IDLE, IDLE), > + UNBLOCK( T0, T0, IDLE, IDLE, IDLE), > + UNBLOCK( T1, T0, T1, IDLE, IDLE), > + UNBLOCK( T2, T0, T1, T2, IDLE), > + UNBLOCK( T3, T0, T1, T2, T3), > + UNBLOCK( T4, T0, T1, T2, T3), > + SET_PRIORITY( T0, P(0), T0, T1, T2, T3), > + SET_PRIORITY( T1, P(1), T0, T1, T2, T3), > + SET_PRIORITY( T2, P(2), T0, T1, T2, T3), > + /* > + * Introduce Task 4 intially with lowest priority to imitate late > arrival > + */ > + SET_PRIORITY( T4, P(5), T0, T1, T2, T3), > + SET_PRIORITY( T3, P(4), T0, T1, T2, T3), > + SET_AFFINITY( T4, A(1, 0, 0, 0), T0, T1, T2, T3), > + /* > + * Show that higher priority task gets dislodged from its processor > + */ > + SET_PRIORITY( T4, P(3), T4, T1, T2, T0), > RESET > }; > > @@ -182,7 +197,7 @@ static void check_cpu_allocations(test_context *ctx, > const test_action *action) > size_t i; > > for (i = 0; i < CPU_COUNT; ++i) { > - size_t e; > + task_index e; > const Per_CPU_Control *c; > const Thread_Control *h; > > @@ -279,7 +294,7 @@ static void test(void) > > for (i = 0; i < TASK_COUNT; ++i) { > sc = rtems_task_create( > - NAME, > + rtems_build_name(' ', ' ', 'T', '0' + i), > P(i), > RTEMS_MINIMUM_STACK_SIZE, > RTEMS_DEFAULT_MODES, > @@ -292,7 +307,10 @@ static void test(void) > rtems_test_assert(sc == RTEMS_SUCCESSFUL); > } > > - sc = rtems_timer_create(NAME, &ctx->timer_id); > + sc = rtems_timer_create( > + rtems_build_name('A', 'C', 'T', 'N'), > + &ctx->timer_id > + ); > rtems_test_assert(sc == RTEMS_SUCCESSFUL); > > sc = rtems_timer_fire_after(ctx->timer_id, 1, timer, ctx); > -- > 2.17.1 > >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel