diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-07 08:30:20 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-10 07:49:40 +0200 |
commit | 4a1bdd3045fa00c95924deb27bc0ffab7e8aaf14 (patch) | |
tree | 78f8c214621f231217d44ec7732be144627d2d6a /testsuites/smptests | |
parent | score: Add simple affinity support to EDF SMP (diff) | |
download | rtems-4a1bdd3045fa00c95924deb27bc0ffab7e8aaf14.tar.bz2 |
score: Fix set scheduler
Ensure that the thread processor affinity fits the new scheduler
instance.
Update #3059.
Diffstat (limited to 'testsuites/smptests')
-rw-r--r-- | testsuites/smptests/smpscheduler02/init.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/testsuites/smptests/smpscheduler02/init.c b/testsuites/smptests/smpscheduler02/init.c index a15218b368..7dd60ec4c5 100644 --- a/testsuites/smptests/smpscheduler02/init.c +++ b/testsuites/smptests/smpscheduler02/init.c @@ -47,7 +47,7 @@ static void task(rtems_task_argument arg) rtems_test_assert(rtems_get_current_processor() == 1); rtems_test_assert(sched_get_priority_min(SCHED_RR) == 1); - rtems_test_assert(sched_get_priority_max(SCHED_RR) == 126); + rtems_test_assert(sched_get_priority_max(SCHED_RR) == INT_MAX - 1); sc = rtems_semaphore_obtain(cmtx_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT); rtems_test_assert(sc == RTEMS_NOT_DEFINED); @@ -345,12 +345,15 @@ static void test(void) rtems_test_assert(sc == RTEMS_SUCCESSFUL); rtems_test_assert(scheduler_id == scheduler_b_id); - sc = rtems_task_set_affinity(task_id, sizeof(second_cpu), &second_cpu); - rtems_test_assert(sc == RTEMS_INVALID_NUMBER); - sc = rtems_task_set_affinity(task_id, sizeof(online_cpus), &online_cpus); rtems_test_assert(sc == RTEMS_SUCCESSFUL); + sc = rtems_task_set_affinity(task_id, sizeof(second_cpu), &second_cpu); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + + sc = rtems_task_set_scheduler(task_id, scheduler_a_id, 1); + rtems_test_assert(sc == RTEMS_UNSATISFIED); + sc = rtems_task_get_scheduler(task_id, &scheduler_id); rtems_test_assert(sc == RTEMS_SUCCESSFUL); rtems_test_assert(scheduler_id == scheduler_b_id); @@ -415,6 +418,7 @@ static void Init(rtems_task_argument arg) /* Lets see when the first RTEMS system hits this limit */ #define CONFIGURE_MAXIMUM_PROCESSORS 64 +#define CONFIGURE_SCHEDULER_EDF_SMP #define CONFIGURE_SCHEDULER_PRIORITY_SMP #define CONFIGURE_SCHEDULER_SIMPLE_SMP @@ -422,13 +426,13 @@ static void Init(rtems_task_argument arg) RTEMS_SCHEDULER_CONTEXT_PRIORITY_SMP(a, 256); -RTEMS_SCHEDULER_CONTEXT_PRIORITY_SMP(b, 128); +RTEMS_SCHEDULER_CONTEXT_EDF_SMP(b, CONFIGURE_MAXIMUM_PROCESSORS); RTEMS_SCHEDULER_CONTEXT_SIMPLE_SMP(c); #define CONFIGURE_SCHEDULER_CONTROLS \ RTEMS_SCHEDULER_CONTROL_PRIORITY_SMP(a, SCHED_A), \ - RTEMS_SCHEDULER_CONTROL_PRIORITY_SMP(b, SCHED_B), \ + RTEMS_SCHEDULER_CONTROL_EDF_SMP(b, SCHED_B), \ RTEMS_SCHEDULER_CONTROL_SIMPLE_SMP(c, SCHED_C) #define CONFIGURE_SMP_SCHEDULER_ASSIGNMENTS \ |