[rtems-schedsim commit] schedsim_smpsimple: Clean up scenarios to match changes.

Jennifer Averett jennifer at rtems.org
Tue May 13 16:42:36 UTC 2014


Module:    rtems-schedsim
Branch:    master
Commit:    3ad6235dade6441f870f00825fc23bdb9bbe3f04
Changeset: http://git.rtems.org/rtems-schedsim/commit/?id=3ad6235dade6441f870f00825fc23bdb9bbe3f04

Author:    Jennifer Averett <jennifer.averett at oarcorp.com>
Date:      Tue May 13 09:30:12 2014 -0500

schedsim_smpsimple: Clean up scenarios to match changes.

Dispatch commands were removed since a dispatch of all cpu's was
added to the dispatch wrapper.  Scenarios wich only use preemptable
tasks were modified to account for changes in scheduling and
changes in expected output format.

---

 .../scenarios/cpus1_priority.expected              |   68 ++++----
 .../scenarios/cpus1_priority.scen                  |    4 -
 .../scenarios/cpus1_resume_on_primary.expected     |   67 ++++----
 .../scenarios/cpus1_resume_on_primary.scen         |    3 -
 .../scenarios/cpus1_suspend_on_primary.expected    |   38 ++--
 .../scenarios/cpus1_suspend_on_primary.scen        |    2 -
 .../scenarios/cpus4_mode_case1.scen                |    1 -
 .../scenarios/cpus4_mode_case2.scen                |    2 -
 .../scenarios/cpus4_nonpreempt_case1.scen          |    2 -
 .../scenarios/cpus4_pick_older.expected            |  185 ++++++++------------
 .../scenarios/cpus4_pick_older.scen                |   22 +--
 .../scenarios/cpus4_priority.expected              |  143 +++++++--------
 .../scenarios/cpus4_priority.scen                  |   15 +-
 .../scenarios/cpus4_simple_nopreempt.scen          |    1 -
 .../scenarios/cpus4_simple_preemption.expected     |  114 ++++++-------
 .../scenarios/cpus4_simple_preemption.scen         |   16 +-
 .../scenarios/cpus4_suspend_on_all.expected        |   97 +++++------
 .../scenarios/cpus4_suspend_on_all.scen            |    2 -
 .../scenarios/cpus4_suspend_on_primary.expected    |  111 ++++++------
 .../scenarios/cpus4_suspend_on_primary.scen        |   16 +-
 .../scenarios/cpus4_suspend_on_secondary.expected  |  113 ++++++------
 .../scenarios/cpus4_suspend_on_secondary.scen      |   12 +-
 22 files changed, 463 insertions(+), 571 deletions(-)

diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.expected
index 4047709..a7a07f0 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.expected
@@ -4,14 +4,14 @@ verbose                   : 1
 ==> 2: #  Check increasing and decrease priority self with no change
 ==> 3: #
 ==> 4: rtems_init 1
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
 ==> 5: task_create smp1 5
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp1) created: id=0x0a010001, priority=5
 Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
+  CPU 0: Thread Heir 0x0a010001 priority=5
+  CPU 0: Thread Executing 0x0a010001 priority=5
 ==> 6: task_create smp2 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp2) created: id=0x0a010002, priority=8
@@ -20,50 +20,46 @@ Task (smp2) starting: id=0x0a010002, priority=8
 ==> 8: # GOAL: 0x0a010001 is heir and executing on CPU 0
 ==> 9: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
 ==> 10: 
 ==> 11: task_priority smp1 4
 Task (0x0a010001) Change Priority from 5 to 4
-==> 12: dispatch
-==> 13: # GOAL: 0x0a010001 is still heir and executing on CPU 0
-==> 14: cpus
+==> 12: # GOAL: 0x0a010001 is still heir and executing on CPU 0
+==> 13: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  4 / 0x0a010001 @  4 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  4 / 0x0a010001 @  4          false
 === End of Ready Set of Threads
-==> 15: 
-==> 16: task_priority smp1 7
+==> 14: 
+==> 15: task_priority smp1 7
 Task (0x0a010001) Change Priority from 4 to 7
-==> 17: dispatch
-==> 18: # GOAL: 0x0a010001 is still heir and executing on CPU 0
-==> 19: cpus
+==> 16: # GOAL: 0x0a010001 is still heir and executing on CPU 0
+==> 17: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  7 / 0x0a010001 @  7 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  7 / 0x0a010001 @  7          false
 === End of Ready Set of Threads
-==> 20: 
-==> 21: task_priority smp1 8
-  Thread Heir: 0x0a010002 priority=8
-  Thread Executing: 0x0a010002 priority=8
+==> 18: 
+==> 19: task_priority smp1 8
+  CPU 0: Thread Heir 0x0a010002 priority=8
+  CPU 0: Thread Executing 0x0a010002 priority=8
 Task (0x0a010001) Change Priority from 7 to 8
-==> 22: dispatch
-==> 23: # GOAL: 0x0a010002 is now heir and executing on CPU 0
-==> 24: cpus
+==> 20: # GOAL: 0x0a010002 is now heir and executing on CPU 0
+==> 21: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010002 @  8 / 0x0a010002 @  8 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010002 @  8 / 0x0a010002 @  8          false
 === End of Ready Set of Threads
-==> 25: 
-==> 26: task_priority smp1 5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
+==> 22: 
+==> 23: task_priority smp1 5
+  CPU 0: Thread Heir 0x0a010001 priority=5
+  CPU 0: Thread Executing 0x0a010001 priority=5
 Task (0x0a010001) Change Priority from 8 to 5
-==> 27: dispatch
-==> 28: # GOAL: 0x0a010001 is now heir and executing on CPU 0
-==> 29: cpus
+==> 24: # GOAL: 0x0a010001 is now heir and executing on CPU 0
+==> 25: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.scen
index 924efc8..9e8377b 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.scen
@@ -9,21 +9,17 @@ dispatch
 cpus
 
 task_priority smp1 4
-dispatch
 # GOAL: 0x0a010001 is still heir and executing on CPU 0
 cpus
 
 task_priority smp1 7
-dispatch
 # GOAL: 0x0a010001 is still heir and executing on CPU 0
 cpus
 
 task_priority smp1 8
-dispatch
 # GOAL: 0x0a010002 is now heir and executing on CPU 0
 cpus
 
 task_priority smp1 5
-dispatch
 # GOAL: 0x0a010001 is now heir and executing on CPU 0
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.expected
index 36328d2..5c4a54f 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.expected
@@ -4,54 +4,51 @@ verbose                   : 1
 ==> 2: #  Check suspending self, then resuming on primary CPU
 ==> 3: #
 ==> 4: rtems_init 1
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
 ==> 5: task_create smp1 5
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp1) created: id=0x0a010001, priority=5
 Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
-==> 6: dispatch
-==> 7: # GOAL: 0x0a010001 is heir and executing on CPU 0
-==> 8: cpus
+  CPU 0: Thread Heir 0x0a010001 priority=5
+  CPU 0: Thread Executing 0x0a010001 priority=5
+==> 6: # GOAL: 0x0a010001 is heir and executing on CPU 0
+==> 7: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
-==> 9: # suspend running task
-==> 10: task_suspend smp1
+==> 8: # suspend running task
+==> 9: task_suspend smp1
 Suspending task (0x0a010001)
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
-==> 11: # GOAL: 0x09010001 is heir and executing on CPU 0
-==> 12: cpus
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+==> 10: # GOAL: 0x09010001 is heir and executing on CPU 0
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010001 @255 / 0x09010001 @255          false
 === End of Ready Set of Threads
-==> 13: dispatch
-==> 14: # GOAL: 0x09010001 is heir and executing on CPU 0
-==> 15: cpus
+==> 12: # GOAL: 0x09010001 is heir and executing on CPU 0
+==> 13: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010001 @255 / 0x09010001 @255          false
 === End of Ready Set of Threads
-==> 16: # resume suspended task
-==> 17: task_resume smp1
+==> 14: # resume suspended task
+==> 15: task_resume smp1
 Resuming task (0x0a010001)
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
-==> 18: # GOAL: 0x0a010001 is heir and executing on CPU 0
-==> 19: cpus
+  CPU 0: Thread Heir 0x0a010001 priority=5
+  CPU 0: Thread Executing 0x0a010001 priority=5
+==> 16: # GOAL: 0x0a010001 is heir and executing on CPU 0
+==> 17: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
-==> 20: dispatch
-==> 21: # GOAL: 0x0a010001 is heir and executing on CPU 0
-==> 22: cpus
+==> 18: # GOAL: 0x0a010001 is heir and executing on CPU 0
+==> 19: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.scen
index d2df3a8..8feaade 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.scen
@@ -3,20 +3,17 @@
 #
 rtems_init 1
 task_create smp1 5
-dispatch
 # GOAL: 0x0a010001 is heir and executing on CPU 0
 cpus
 # suspend running task
 task_suspend smp1
 # GOAL: 0x09010001 is heir and executing on CPU 0
 cpus
-dispatch
 # GOAL: 0x09010001 is heir and executing on CPU 0
 cpus
 # resume suspended task
 task_resume smp1
 # GOAL: 0x0a010001 is heir and executing on CPU 0
 cpus
-dispatch
 # GOAL: 0x0a010001 is heir and executing on CPU 0
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.expected
index 5844723..2870c95 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.expected
@@ -4,34 +4,32 @@ verbose                   : 1
 ==> 2: #  Check blocking self on primary CPU
 ==> 3: #
 ==> 4: rtems_init 1
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
 ==> 5: task_create smp1 5
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp1) created: id=0x0a010001, priority=5
 Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
-==> 6: dispatch
-==> 7: cpus
+  CPU 0: Thread Heir 0x0a010001 priority=5
+  CPU 0: Thread Executing 0x0a010001 priority=5
+==> 6: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
-==> 8: # GOAL: 0x0a010001 is heir and executing on CPU 0
-==> 9: task_suspend SELF
+==> 7: # GOAL: 0x0a010001 is heir and executing on CPU 0
+==> 8: task_suspend SELF
 Suspending task (0x0a010001)
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
-==> 10: cpus
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+==> 9: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010001 @255 / 0x09010001 @255          false
 === End of Ready Set of Threads
-==> 11: dispatch
-==> 12: # GOAL: 0x09010001 is heir and executing on CPU 0
-==> 13: cpus
+==> 10: # GOAL: 0x09010001 is heir and executing on CPU 0
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010001 @255 / 0x09010001 @255          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.scen
index a4db578..46e9e13 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.scen
@@ -3,11 +3,9 @@
 #
 rtems_init 1
 task_create smp1 5
-dispatch
 cpus
 # GOAL: 0x0a010001 is heir and executing on CPU 0
 task_suspend SELF
 cpus
-dispatch
 # GOAL: 0x09010001 is heir and executing on CPU 0
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case1.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case1.scen
index a9f186c..0862ab5 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case1.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case1.scen
@@ -14,7 +14,6 @@ dispatch
 cpus
 
 task_create smp5 3
-dispatch
 # GOAL: 0x0a010001, 0x0a010005, 0x0a010003, and 0x0a010004 are heir
 # GOAL:   and executing on CPUs 0 - 3
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case2.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case2.scen
index 44263e4..81cf879 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case2.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case2.scen
@@ -13,7 +13,6 @@ dispatch
 cpus
 
 task_create smp5 3
-dispatch
 # GOAL: 0x0a010001 - 0x0a010004 are executing on CPUs 0 - 3.
 # GOAL:   All are also heir EXCEPT 0x0a010005 is heir on CPU 1.
 # GOAL: **** SHOWS INVERSION - CPU 1 has NO PREEMPT TASK ****
@@ -21,7 +20,6 @@ cpus
 
 current_cpu 1
 task_mode -P
-dispatch
 # GOAL: 0x0a010001, 0x0a010005, 0x0a010003, and 0x0a010004 are
 # GOAL:   heir and executing on CPUs 0 - 3
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_nonpreempt_case1.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_nonpreempt_case1.scen
index 92b44bf..24af429 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_nonpreempt_case1.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_nonpreempt_case1.scen
@@ -7,13 +7,11 @@ task_create -p smp1 5
 task_create smp2 5
 task_create smp3 5
 task_create smp4 5
-dispatch
 # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
 # GOAL:   on CPUs 0 - 3 respectively
 cpus
 
 task_create smp5 3
-dispatch
 # GOAL: 0x0a010001, 0x0a010005, 0x0a010003, and 0x0a010004 are heir
 # GOAL:   and executing on CPUs 0 - 3
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.expected
index 749ae29..9dedbb6 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.expected
@@ -4,153 +4,120 @@ verbose                   : 1
 ==> 2: #  Verify we select the oldest task at a priority
 ==> 3: #
 ==> 4: rtems_init 4
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+  CPU 1: Thread Heir 0x09010002 priority=255
+  CPU 1: Thread Executing 0x09010002 priority=255
+  CPU 2: Thread Heir 0x09010003 priority=255
+  CPU 2: Thread Executing 0x09010003 priority=255
+  CPU 3: Thread Heir 0x09010004 priority=255
+  CPU 3: Thread Executing 0x09010004 priority=255
 ==> 5: task_create smp1 3
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp1) created: id=0x0a010001, priority=3
 Task (smp1) starting: id=0x0a010001, priority=3
-  Thread Heir: 0x0a010001 priority=3
-  Thread Executing: 0x0a010001 priority=3
+  CPU 3: Thread Heir 0x0a010001 priority=3
+  CPU 3: Thread Executing 0x0a010001 priority=3
 ==> 6: task_create smp2 6
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp2) created: id=0x0a010002, priority=6
 Task (smp2) starting: id=0x0a010002, priority=6
+  CPU 2: Thread Heir 0x0a010002 priority=6
+  CPU 2: Thread Executing 0x0a010002 priority=6
 ==> 7: task_create smp3 7
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp3) created: id=0x0a010003, priority=7
 Task (smp3) starting: id=0x0a010003, priority=7
+  CPU 1: Thread Heir 0x0a010003 priority=7
+  CPU 1: Thread Executing 0x0a010003 priority=7
 ==> 8: task_create smp4 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp4) created: id=0x0a010004, priority=8
 Task (smp4) starting: id=0x0a010004, priority=8
-==> 9: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010002 priority=6
-  Thread Executing: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=6
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010003 priority=7
-  Thread Executing: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=7
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-==> 10: # GOAL: Tasks 0x0a010001 - 0x0a010004 as heir and executing
-==> 11: # GOAL:    on CPUs 1 - 4 respectively
-==> 12: cpus
+  CPU 0: Thread Heir 0x0a010004 priority=8
+  CPU 0: Thread Executing 0x0a010004 priority=8
+==> 9: # GOAL: Tasks 0x0a010001 - 0x0a010004 as heir and executing
+==> 10: # GOAL:    on CPUs 3 - 0 respectively
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  3 / 0x0a010001 @  3 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  7 / 0x0a010003 @  7          false
+  CPU 2: 0x0a010002 @  6 / 0x0a010002 @  6          false
+  CPU 3: 0x0a010001 @  3 / 0x0a010001 @  3          false
 === End of Ready Set of Threads
-==> 13: 
-==> 14: task_create smp5 5
+==> 12: 
+==> 13: task_create smp5 5
 Creating task with:  Preemption: yes Timeslicing: no
-  Thread Heir: 0x0a010001 priority=3
-  Thread Executing: 0x0a010001 priority=3
 Task (smp5) created: id=0x0a010005, priority=5
 Task (smp5) starting: id=0x0a010005, priority=5
-==> 15: clock_tick 1
+  CPU 0: Thread Heir 0x0a010005 priority=5
+  CPU 0: Thread Executing 0x0a010005 priority=5
+==> 14: clock_tick 1
 ClockTick (1) ...
-==> 16: dispatch
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010005 priority=5
-  Thread Executing: 0x0a010004 priority=8
-  Thread Executing: 0x0a010005 priority=5
-==> 17: # GOAL: Tasks 0x0a010001, 0x0a010002, 0x0a010003, and 0x0a010005 are
-==> 18: # GOAL:    heir and executing on CPUs 1 - 4 respectively
-==> 19: cpus
+==> 15: # GOAL: Tasks 0x0a010001, 0x0a010002, 0x0a010003, and 0x0a010005 are
+==> 16: # GOAL:    heir and executing on CPUs 3 - 0 respectively
+==> 17: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  3 / 0x0a010001 @  3 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010005 @  5 / 0x0a010005 @  5 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010005 @  5 / 0x0a010005 @  5          false
+  CPU 1: 0x0a010003 @  7 / 0x0a010003 @  7          false
+  CPU 2: 0x0a010002 @  6 / 0x0a010002 @  6          false
+  CPU 3: 0x0a010001 @  3 / 0x0a010001 @  3          false
 === End of Ready Set of Threads
-==> 20: 
-==> 21: task_create smp6 5
+==> 18: 
+==> 19: task_create smp6 5
 Creating task with:  Preemption: yes Timeslicing: no
-  Thread Heir: 0x0a010001 priority=3
-  Thread Executing: 0x0a010001 priority=3
 Task (smp6) created: id=0x0a010006, priority=5
 Task (smp6) starting: id=0x0a010006, priority=5
-==> 22: clock_tick 1
+  CPU 1: Thread Heir 0x0a010006 priority=5
+  CPU 1: Thread Executing 0x0a010006 priority=5
+==> 20: clock_tick 1
 ClockTick (1) ...
-==> 23: dispatch
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010006 priority=5
-  Thread Executing: 0x0a010003 priority=7
-  Thread Executing: 0x0a010006 priority=5
-==> 24: # GOAL: Tasks 0x0a010001, 0x0a010002, 0x0a010006, and 0x0a010005 are
-==> 25: # GOAL:    heir and executing on CPUs 1 - 4 respectively
-==> 26: cpus
+==> 21: # GOAL: Tasks 0x0a010001, 0x0a010002, 0x0a010006, and 0x0a010005 are
+==> 22: # GOAL:    heir and executing on CPUs 3 - 0 respectively
+==> 23: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  3 / 0x0a010001 @  3 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010006 @  5 / 0x0a010006 @  5 / 0x09010003 @255         false
-  CPU 3: 0x0a010005 @  5 / 0x0a010005 @  5 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010005 @  5 / 0x0a010005 @  5          false
+  CPU 1: 0x0a010006 @  5 / 0x0a010006 @  5          false
+  CPU 2: 0x0a010002 @  6 / 0x0a010002 @  6          false
+  CPU 3: 0x0a010001 @  3 / 0x0a010001 @  3          false
 === End of Ready Set of Threads
-==> 27: 
-==> 28: task_create smp7 5
+==> 24: 
+==> 25: task_create smp7 5
 Creating task with:  Preemption: yes Timeslicing: no
-  Thread Heir: 0x0a010001 priority=3
-  Thread Executing: 0x0a010001 priority=3
 Task (smp7) created: id=0x0a010007, priority=5
 Task (smp7) starting: id=0x0a010007, priority=5
-==> 29: clock_tick 1
+  CPU 2: Thread Heir 0x0a010007 priority=5
+  CPU 2: Thread Executing 0x0a010007 priority=5
+==> 26: clock_tick 1
 ClockTick (1) ...
-==> 30: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010007 priority=5
-  Thread Executing: 0x0a010002 priority=6
-  Thread Executing: 0x0a010007 priority=5
-==> 31: # GOAL: Tasks 0x0a010001, 0x0a010007, 0x0a010006, and 0x0a010005 are
-==> 32: # GOAL:    heir and executing on CPUs 1 - 4 respectively
-==> 33: cpus
+==> 27: # GOAL: Tasks 0x0a010001, 0x0a010007, 0x0a010006, and 0x0a010005 are
+==> 28: # GOAL:    heir and executing on CPUs 3 - 0 respectively
+==> 29: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  3 / 0x0a010001 @  3 / 0x09010001 @255         false
-  CPU 1: 0x0a010007 @  5 / 0x0a010007 @  5 / 0x09010002 @255         false
-  CPU 2: 0x0a010006 @  5 / 0x0a010006 @  5 / 0x09010003 @255         false
-  CPU 3: 0x0a010005 @  5 / 0x0a010005 @  5 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010005 @  5 / 0x0a010005 @  5          false
+  CPU 1: 0x0a010006 @  5 / 0x0a010006 @  5          false
+  CPU 2: 0x0a010007 @  5 / 0x0a010007 @  5          false
+  CPU 3: 0x0a010001 @  3 / 0x0a010001 @  3          false
 === End of Ready Set of Threads
-==> 34: 
-==> 35: # We should pick task smp4 on the 4th core
-==> 36: task_create smp8 4
+==> 30: 
+==> 31: # We should pick task smp5 (0x0a010005) on CPU 0
+==> 32: task_create smp8 4
 Creating task with:  Preemption: yes Timeslicing: no
-  Thread Heir: 0x0a010001 priority=3
-  Thread Executing: 0x0a010001 priority=3
 Task (smp8) created: id=0x0a010008, priority=4
 Task (smp8) starting: id=0x0a010008, priority=4
-==> 37: # GOAL: Tasks 0x0a010001, 0x0a010007, and 0x0a010006 
-==> 38: # GOAL:    heir and executing on CPUs 1 - 3 respectively
-==> 39: # GOAL: Task 0x0a010005 is executing on CPU 4
-==> 40: # GOAL: Task 0x0a010008 is heir on CPU 4
-==> 41: cpus
+  CPU 2: Thread Heir 0x0a010008 priority=4
+  CPU 2: Thread Executing 0x0a010008 priority=4
+==> 33: # GOAL: Tasks 0x0a010001, 0x0a010007, 0x0a010006, and 0x0a010008 are
+==> 34: # GOAL:    heir and executing on CPUs 3 - 0 respectively
+==> 35: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  3 / 0x0a010001 @  3 / 0x09010001 @255         false
-  CPU 1: 0x0a010007 @  5 / 0x0a010007 @  5 / 0x09010002 @255         false
-  CPU 2: 0x0a010006 @  5 / 0x0a010006 @  5 / 0x09010003 @255         false
-  CPU 3: 0x0a010005 @  5 / 0x0a010008 @  4 / 0x09010004 @255         true
-=== End of Ready Set of Threads
-==> 42: dispatch
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010008 priority=4
-  Thread Executing: 0x0a010005 priority=5
-  Thread Executing: 0x0a010008 priority=4
-==> 43: # GOAL: Tasks 0x0a010001, 0x0a010007, 0x0a010006, and 0x0a010008 are
-==> 44: # GOAL:    heir and executing on CPUs 1 - 4 respectively
-==> 45: cpus
-=== CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  3 / 0x0a010001 @  3 / 0x09010001 @255         false
-  CPU 1: 0x0a010007 @  5 / 0x0a010007 @  5 / 0x09010002 @255         false
-  CPU 2: 0x0a010006 @  5 / 0x0a010006 @  5 / 0x09010003 @255         false
-  CPU 3: 0x0a010008 @  4 / 0x0a010008 @  4 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010008 @  4 / 0x0a010008 @  4          false
+  CPU 1: 0x0a010006 @  5 / 0x0a010006 @  5          false
+  CPU 2: 0x0a010007 @  5 / 0x0a010007 @  5          false
+  CPU 3: 0x0a010001 @  3 / 0x0a010001 @  3          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.scen
index baf55f0..d838516 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.scen
@@ -6,40 +6,30 @@ task_create smp1 3
 task_create smp2 6
 task_create smp3 7
 task_create smp4 8
-dispatch
 # GOAL: Tasks 0x0a010001 - 0x0a010004 as heir and executing
-# GOAL:    on CPUs 1 - 4 respectively
+# GOAL:    on CPUs 3 - 0 respectively
 cpus
 
 task_create smp5 5
 clock_tick 1
-dispatch
 # GOAL: Tasks 0x0a010001, 0x0a010002, 0x0a010003, and 0x0a010005 are
-# GOAL:    heir and executing on CPUs 1 - 4 respectively
+# GOAL:    heir and executing on CPUs 3 - 0 respectively
 cpus
 
 task_create smp6 5
 clock_tick 1
-dispatch
 # GOAL: Tasks 0x0a010001, 0x0a010002, 0x0a010006, and 0x0a010005 are
-# GOAL:    heir and executing on CPUs 1 - 4 respectively
+# GOAL:    heir and executing on CPUs 3 - 0 respectively
 cpus
 
 task_create smp7 5
 clock_tick 1
-dispatch
 # GOAL: Tasks 0x0a010001, 0x0a010007, 0x0a010006, and 0x0a010005 are
-# GOAL:    heir and executing on CPUs 1 - 4 respectively
+# GOAL:    heir and executing on CPUs 3 - 0 respectively
 cpus
 
-# We should pick task smp4 on the 4th core
+# We should pick task smp5 (0x0a010005) on CPU 0
 task_create smp8 4
-# GOAL: Tasks 0x0a010001, 0x0a010007, and 0x0a010006 
-# GOAL:    heir and executing on CPUs 1 - 3 respectively
-# GOAL: Task 0x0a010005 is executing on CPU 4
-# GOAL: Task 0x0a010008 is heir on CPU 4
-cpus
-dispatch
 # GOAL: Tasks 0x0a010001, 0x0a010007, 0x0a010006, and 0x0a010008 are
-# GOAL:    heir and executing on CPUs 1 - 4 respectively
+# GOAL:    heir and executing on CPUs 3 - 0 respectively
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.expected
index 942341b..de7fcb7 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.expected
@@ -4,112 +4,105 @@ verbose                   : 1
 ==> 2: #  Check increasing and decrease priority
 ==> 3: #
 ==> 4: rtems_init 4
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+  CPU 1: Thread Heir 0x09010002 priority=255
+  CPU 1: Thread Executing 0x09010002 priority=255
+  CPU 2: Thread Heir 0x09010003 priority=255
+  CPU 2: Thread Executing 0x09010003 priority=255
+  CPU 3: Thread Heir 0x09010004 priority=255
+  CPU 3: Thread Executing 0x09010004 priority=255
 ==> 5: task_create smp1 5
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp1) created: id=0x0a010001, priority=5
 Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
+  CPU 3: Thread Heir 0x0a010001 priority=5
+  CPU 3: Thread Executing 0x0a010001 priority=5
 ==> 6: task_create smp2 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp2) created: id=0x0a010002, priority=8
 Task (smp2) starting: id=0x0a010002, priority=8
+  CPU 2: Thread Heir 0x0a010002 priority=8
+  CPU 2: Thread Executing 0x0a010002 priority=8
 ==> 7: task_create smp3 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp3) created: id=0x0a010003, priority=8
 Task (smp3) starting: id=0x0a010003, priority=8
+  CPU 1: Thread Heir 0x0a010003 priority=8
+  CPU 1: Thread Executing 0x0a010003 priority=8
 ==> 8: task_create smp4 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp4) created: id=0x0a010004, priority=8
 Task (smp4) starting: id=0x0a010004, priority=8
+  CPU 0: Thread Heir 0x0a010004 priority=8
+  CPU 0: Thread Executing 0x0a010004 priority=8
 ==> 9: task_create smp5 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp5) created: id=0x0a010005, priority=8
 Task (smp5) starting: id=0x0a010005, priority=8
-==> 10: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010002 priority=8
-  Thread Executing: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=8
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010003 priority=8
-  Thread Executing: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=8
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-==> 11: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-==> 12: # GOAL:   on CPUs 0 - 3 respectively
-==> 13: cpus
+==> 10: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
+==> 11: # GOAL:   on CPUs 3 - 0 respectively
+==> 12: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  8 / 0x0a010002 @  8 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  8 / 0x0a010003 @  8 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  8 / 0x0a010003 @  8          false
+  CPU 2: 0x0a010002 @  8 / 0x0a010002 @  8          false
+  CPU 3: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
-==> 14: 
-==> 15: task_priority smp1 4
-  Thread Heir: 0x0a010001 priority=4
-  Thread Executing: 0x0a010001 priority=4
+==> 13: 
+==> 14: task_priority smp1 4
 Task (0x0a010001) Change Priority from 5 to 4
-==> 16: dispatch
-==> 17: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-==> 18: # GOAL:   on CPUs 0 - 3 respectively (no change)
-==> 19: cpus
+==> 15: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
+==> 16: # GOAL:   on CPUs 3 - 0 respectively (no change)
+==> 17: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  4 / 0x0a010001 @  4 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  8 / 0x0a010002 @  8 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  8 / 0x0a010003 @  8 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  8 / 0x0a010003 @  8          false
+  CPU 2: 0x0a010002 @  8 / 0x0a010002 @  8          false
+  CPU 3: 0x0a010001 @  4 / 0x0a010001 @  4          false
 === End of Ready Set of Threads
-==> 20: 
-==> 21: task_priority smp1 7
+==> 18: 
+==> 19: task_priority smp1 7
 Task (0x0a010001) Change Priority from 4 to 7
-==> 22: dispatch
-==> 23: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-==> 24: # GOAL:   on CPUs 0 - 3 respectively (no change)
-==> 25: cpus
+==> 20: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
+==> 21: # GOAL:   on CPUs 3 - 0 respectively (no change)
+==> 22: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  7 / 0x0a010001 @  7 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  8 / 0x0a010002 @  8 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  8 / 0x0a010003 @  8 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  8 / 0x0a010003 @  8          false
+  CPU 2: 0x0a010002 @  8 / 0x0a010002 @  8          false
+  CPU 3: 0x0a010001 @  7 / 0x0a010001 @  7          false
 === End of Ready Set of Threads
-==> 26: 
-==> 27: task_priority smp1 8
-  Thread Heir: 0x0a010005 priority=8
-  Thread Executing: 0x0a010005 priority=8
+==> 23: 
+==> 24: task_priority smp1 8
+  CPU 3: Thread Heir 0x0a010005 priority=8
+  CPU 3: Thread Executing 0x0a010005 priority=8
 Task (0x0a010001) Change Priority from 7 to 8
-==> 28: dispatch
-==> 29: # GOAL: 0x0a010005, 0x0a010002 - 0x0a010004 are heir and executing
-==> 30: # GOAL:   on CPUs 0 - 3 respectively
-==> 31: cpus
+==> 25: # GOAL: 0x0a010005, 0x0a010002 - 0x0a010004 are heir and executing
+==> 26: # GOAL:   on CPUs 3 - 0 respectively
+==> 27: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010005 @  8 / 0x0a010005 @  8 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  8 / 0x0a010002 @  8 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  8 / 0x0a010003 @  8 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  8 / 0x0a010003 @  8          false
+  CPU 2: 0x0a010002 @  8 / 0x0a010002 @  8          false
+  CPU 3: 0x0a010005 @  8 / 0x0a010005 @  8          false
 === End of Ready Set of Threads
-==> 32: 
-==> 33: task_priority smp1 5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
+==> 28: 
+==> 29: task_priority smp1 5
+  CPU 3: Thread Heir 0x0a010001 priority=5
+  CPU 3: Thread Executing 0x0a010001 priority=5
 Task (0x0a010001) Change Priority from 8 to 5
-==> 34: dispatch
-==> 35: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-==> 36: # GOAL:   on CPUs 0 - 3 respectively
-==> 37: cpus
+==> 30: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
+==> 31: # GOAL:   on CPUs 3 - 0 respectively
+==> 32: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  8 / 0x0a010002 @  8 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  8 / 0x0a010003 @  8 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  8 / 0x0a010003 @  8          false
+  CPU 2: 0x0a010002 @  8 / 0x0a010002 @  8          false
+  CPU 3: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.scen
index 311bae4..ed58588 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.scen
@@ -7,31 +7,26 @@ task_create smp2 8
 task_create smp3 8
 task_create smp4 8
 task_create smp5 8
-dispatch
 # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-# GOAL:   on CPUs 0 - 3 respectively
+# GOAL:   on CPUs 3 - 0 respectively
 cpus
 
 task_priority smp1 4
-dispatch
 # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-# GOAL:   on CPUs 0 - 3 respectively (no change)
+# GOAL:   on CPUs 3 - 0 respectively (no change)
 cpus
 
 task_priority smp1 7
-dispatch
 # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-# GOAL:   on CPUs 0 - 3 respectively (no change)
+# GOAL:   on CPUs 3 - 0 respectively (no change)
 cpus
 
 task_priority smp1 8
-dispatch
 # GOAL: 0x0a010005, 0x0a010002 - 0x0a010004 are heir and executing
-# GOAL:   on CPUs 0 - 3 respectively
+# GOAL:   on CPUs 3 - 0 respectively
 cpus
 
 task_priority smp1 5
-dispatch
 # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
-# GOAL:   on CPUs 0 - 3 respectively
+# GOAL:   on CPUs 3 - 0 respectively
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_nopreempt.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_nopreempt.scen
index d7596d9..ba6d844 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_nopreempt.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_nopreempt.scen
@@ -14,6 +14,5 @@ cpus
 task_create smp5 1
 # GOAL: Task 0x0a010005 is heir but 0x0a010004 is executing on CPU 4
 cpus
-dispatch
 # GOAL: Task 0x0a010005 is heir but 0x0a010004 is executing on CPU 4
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.expected
index 9a4942b..19d4753 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.expected
@@ -4,76 +4,70 @@ verbose                   : 1
 ==> 2: #  Ensure lowest priority is preempted
 ==> 3: #
 ==> 4: rtems_init 4
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
-==> 5: task_create smp1 5
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+  CPU 1: Thread Heir 0x09010002 priority=255
+  CPU 1: Thread Executing 0x09010002 priority=255
+  CPU 2: Thread Heir 0x09010003 priority=255
+  CPU 2: Thread Executing 0x09010003 priority=255
+  CPU 3: Thread Heir 0x09010004 priority=255
+  CPU 3: Thread Executing 0x09010004 priority=255
+==> 5: task_create smp1 7
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp1) created: id=0x0a010001, priority=5
-Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
-==> 6: task_create smp2 6
+Task (smp1) created: id=0x0a010001, priority=7
+Task (smp1) starting: id=0x0a010001, priority=7
+  CPU 3: Thread Heir 0x0a010001 priority=7
+  CPU 3: Thread Executing 0x0a010001 priority=7
+==> 6: task_create smp2 8
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp2) created: id=0x0a010002, priority=6
-Task (smp2) starting: id=0x0a010002, priority=6
-==> 7: task_create smp3 7
+Task (smp2) created: id=0x0a010002, priority=8
+Task (smp2) starting: id=0x0a010002, priority=8
+  CPU 2: Thread Heir 0x0a010002 priority=8
+  CPU 2: Thread Executing 0x0a010002 priority=8
+==> 7: task_create smp3 5
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp3) created: id=0x0a010003, priority=7
-Task (smp3) starting: id=0x0a010003, priority=7
-==> 8: task_create smp4 8
+Task (smp3) created: id=0x0a010003, priority=5
+Task (smp3) starting: id=0x0a010003, priority=5
+  CPU 1: Thread Heir 0x0a010003 priority=5
+  CPU 1: Thread Executing 0x0a010003 priority=5
+==> 8: task_create smp4 6
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp4) created: id=0x0a010004, priority=8
-Task (smp4) starting: id=0x0a010004, priority=8
-==> 9: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010002 priority=6
-  Thread Executing: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=6
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010003 priority=7
-  Thread Executing: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=7
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-==> 10: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-==> 11: # GOAL:   on CPUs 1-4 respectively
-==> 12: cpus
+Task (smp4) created: id=0x0a010004, priority=6
+Task (smp4) starting: id=0x0a010004, priority=6
+  CPU 0: Thread Heir 0x0a010004 priority=6
+  CPU 0: Thread Executing 0x0a010004 priority=6
+==> 9: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
+==> 10: # GOAL:   on CPUs 3-0 respectively
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  6 / 0x0a010004 @  6          false
+  CPU 1: 0x0a010003 @  5 / 0x0a010003 @  5          false
+  CPU 2: 0x0a010002 @  8 / 0x0a010002 @  8          false
+  CPU 3: 0x0a010001 @  7 / 0x0a010001 @  7          false
 === End of Ready Set of Threads
-==> 13: # Tasks are created and distributed across CPUs
-==> 14: task_create smp5 1
+==> 12: # Tasks are created and distributed across CPUs
+==> 13: task_create smp5 1
 Creating task with:  Preemption: yes Timeslicing: no
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
 Task (smp5) created: id=0x0a010005, priority=1
 Task (smp5) starting: id=0x0a010005, priority=1
-==> 15: # GOAL: want 0x0a010005 to be heir on CPU 4
-==> 16: cpus
+  CPU 2: Thread Heir 0x0a010005 priority=1
+  CPU 2: Thread Executing 0x0a010005 priority=1
+==> 14: # GOAL: want 0x0a010005 to be heir on CPU 2
+==> 15: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010005 @  1 / 0x09010004 @255         true
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  6 / 0x0a010004 @  6          false
+  CPU 1: 0x0a010003 @  5 / 0x0a010003 @  5          false
+  CPU 2: 0x0a010005 @  1 / 0x0a010005 @  1          false
+  CPU 3: 0x0a010001 @  7 / 0x0a010001 @  7          false
 === End of Ready Set of Threads
-==> 17: dispatch
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010005 priority=1
-  Thread Executing: 0x0a010004 priority=8
-  Thread Executing: 0x0a010005 priority=1
-==> 18: # GOAL: want 0x0a010005 to be heir AND executing on CPU 4
-==> 19: cpus
+==> 16: # GOAL: want 0x0a010005 to be heir AND executing on CPU 2
+==> 17: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010005 @  1 / 0x0a010005 @  1 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  6 / 0x0a010004 @  6          false
+  CPU 1: 0x0a010003 @  5 / 0x0a010003 @  5          false
+  CPU 2: 0x0a010005 @  1 / 0x0a010005 @  1          false
+  CPU 3: 0x0a010001 @  7 / 0x0a010001 @  7          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.scen
index ccb6d0e..27c77c2 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.scen
@@ -2,18 +2,16 @@
 #  Ensure lowest priority is preempted
 #
 rtems_init 4
-task_create smp1 5
-task_create smp2 6
-task_create smp3 7
-task_create smp4 8
-dispatch
+task_create smp1 7
+task_create smp2 8
+task_create smp3 5
+task_create smp4 6
 # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-# GOAL:   on CPUs 1-4 respectively
+# GOAL:   on CPUs 3-0 respectively
 cpus
 # Tasks are created and distributed across CPUs
 task_create smp5 1
-# GOAL: want 0x0a010005 to be heir on CPU 4
+# GOAL: want 0x0a010005 to be heir on CPU 2
 cpus
-dispatch
-# GOAL: want 0x0a010005 to be heir AND executing on CPU 4
+# GOAL: want 0x0a010005 to be heir AND executing on CPU 2
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.expected
index ee26a63..b94ab9d 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.expected
@@ -4,80 +4,71 @@ verbose                   : 1
 ==> 2: #  Check blocking self on secondary CPU
 ==> 3: #
 ==> 4: rtems_init 4
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+  CPU 1: Thread Heir 0x09010002 priority=255
+  CPU 1: Thread Executing 0x09010002 priority=255
+  CPU 2: Thread Heir 0x09010003 priority=255
+  CPU 2: Thread Executing 0x09010003 priority=255
+  CPU 3: Thread Heir 0x09010004 priority=255
+  CPU 3: Thread Executing 0x09010004 priority=255
 ==> 5: task_create smp1 5
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp1) created: id=0x0a010001, priority=5
 Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
+  CPU 3: Thread Heir 0x0a010001 priority=5
+  CPU 3: Thread Executing 0x0a010001 priority=5
 ==> 6: task_create smp2 6
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp2) created: id=0x0a010002, priority=6
 Task (smp2) starting: id=0x0a010002, priority=6
+  CPU 2: Thread Heir 0x0a010002 priority=6
+  CPU 2: Thread Executing 0x0a010002 priority=6
 ==> 7: task_create smp3 7
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp3) created: id=0x0a010003, priority=7
 Task (smp3) starting: id=0x0a010003, priority=7
+  CPU 1: Thread Heir 0x0a010003 priority=7
+  CPU 1: Thread Executing 0x0a010003 priority=7
 ==> 8: task_create smp4 8
 Creating task with:  Preemption: yes Timeslicing: no
 Task (smp4) created: id=0x0a010004, priority=8
 Task (smp4) starting: id=0x0a010004, priority=8
-==> 9: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010002 priority=6
-  Thread Executing: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=6
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010003 priority=7
-  Thread Executing: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=7
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-==> 10: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-==> 11: # GOAL:   on CPUs 0 - 3 respectively
-==> 12: cpus
+  CPU 0: Thread Heir 0x0a010004 priority=8
+  CPU 0: Thread Executing 0x0a010004 priority=8
+==> 9: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
+==> 10: # GOAL:   on CPUs 0 - 3 respectively
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  8 / 0x0a010004 @  8          false
+  CPU 1: 0x0a010003 @  7 / 0x0a010003 @  7          false
+  CPU 2: 0x0a010002 @  6 / 0x0a010002 @  6          false
+  CPU 3: 0x0a010001 @  5 / 0x0a010001 @  5          false
 === End of Ready Set of Threads
-==> 13: task_suspend smp1
+==> 12: task_suspend smp1
 Suspending task (0x0a010001)
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x0a010001 priority=5
-  Thread Executing: 0x09010001 priority=255
-==> 14: task_suspend smp2
+  CPU 3: Thread Heir 0x09010001 priority=255
+  CPU 3: Thread Executing 0x09010001 priority=255
+==> 13: task_suspend smp2
 Suspending task (0x0a010002)
-==> 15: task_suspend smp3
+  CPU 2: Thread Heir 0x09010002 priority=255
+  CPU 2: Thread Executing 0x09010002 priority=255
+==> 14: task_suspend smp3
 Suspending task (0x0a010003)
-==> 16: task_suspend smp4
+  CPU 1: Thread Heir 0x09010003 priority=255
+  CPU 1: Thread Executing 0x09010003 priority=255
+==> 15: task_suspend smp4
 Suspending task (0x0a010004)
-==> 17: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=6
-  Thread Executing: 0x09010002 priority=255
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=7
-  Thread Executing: 0x09010003 priority=255
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-==> 18: # GOAL: want IDLE 0x09010001 - 0x09010004 as heir and executings
-==> 19: # GOAL:   on CPUs 0 - 3 respectively
-==> 20: cpus
+  CPU 0: Thread Heir 0x09010004 priority=255
+  CPU 0: Thread Executing 0x09010004 priority=255
+==> 16: # GOAL: want IDLE 0x09010001 - 0x09010004 as heir and executings
+==> 17: # GOAL:   on CPUs 0 - 3 respectively
+==> 18: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
-  CPU 1: 0x09010002 @255 / 0x09010002 @255 / 0x09010002 @255         false
-  CPU 2: 0x09010003 @255 / 0x09010003 @255 / 0x09010003 @255         false
-  CPU 3: 0x09010004 @255 / 0x09010004 @255 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010004 @255 / 0x09010004 @255          false
+  CPU 1: 0x09010003 @255 / 0x09010003 @255          false
+  CPU 2: 0x09010002 @255 / 0x09010002 @255          false
+  CPU 3: 0x09010001 @255 / 0x09010001 @255          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.scen
index d0568ce..f1fac9f 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.scen
@@ -6,7 +6,6 @@ task_create smp1 5
 task_create smp2 6
 task_create smp3 7
 task_create smp4 8
-dispatch
 # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
 # GOAL:   on CPUs 0 - 3 respectively
 cpus
@@ -14,7 +13,6 @@ task_suspend smp1
 task_suspend smp2
 task_suspend smp3
 task_suspend smp4
-dispatch
 # GOAL: want IDLE 0x09010001 - 0x09010004 as heir and executings
 # GOAL:   on CPUs 0 - 3 respectively
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.expected
index 0e63b40..3a40a2f 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.expected
@@ -4,70 +4,67 @@ verbose                   : 1
 ==> 2: #  Check blocking self on primary CPU
 ==> 3: #
 ==> 4: rtems_init 4
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
-==> 5: task_create smp1 5
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+  CPU 1: Thread Heir 0x09010002 priority=255
+  CPU 1: Thread Executing 0x09010002 priority=255
+  CPU 2: Thread Heir 0x09010003 priority=255
+  CPU 2: Thread Executing 0x09010003 priority=255
+  CPU 3: Thread Heir 0x09010004 priority=255
+  CPU 3: Thread Executing 0x09010004 priority=255
+==> 5: task_create smp1 8
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp1) created: id=0x0a010001, priority=5
-Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
-==> 6: task_create smp2 6
+Task (smp1) created: id=0x0a010001, priority=8
+Task (smp1) starting: id=0x0a010001, priority=8
+  CPU 3: Thread Heir 0x0a010001 priority=8
+  CPU 3: Thread Executing 0x0a010001 priority=8
+==> 6: task_create smp2 7
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp2) created: id=0x0a010002, priority=6
-Task (smp2) starting: id=0x0a010002, priority=6
-==> 7: task_create smp3 7
+Task (smp2) created: id=0x0a010002, priority=7
+Task (smp2) starting: id=0x0a010002, priority=7
+  CPU 2: Thread Heir 0x0a010002 priority=7
+  CPU 2: Thread Executing 0x0a010002 priority=7
+==> 7: task_create smp3 6
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp3) created: id=0x0a010003, priority=7
-Task (smp3) starting: id=0x0a010003, priority=7
-==> 8: task_create smp4 8
+Task (smp3) created: id=0x0a010003, priority=6
+Task (smp3) starting: id=0x0a010003, priority=6
+  CPU 1: Thread Heir 0x0a010003 priority=6
+  CPU 1: Thread Executing 0x0a010003 priority=6
+==> 8: task_create smp4 5
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp4) created: id=0x0a010004, priority=8
-Task (smp4) starting: id=0x0a010004, priority=8
-==> 9: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010002 priority=6
-  Thread Executing: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=6
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010003 priority=7
-  Thread Executing: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=7
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-==> 10: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-==> 11: # GOAL:   on CPUs 1-4 respectively
-==> 12: cpus
+Task (smp4) created: id=0x0a010004, priority=5
+Task (smp4) starting: id=0x0a010004, priority=5
+  CPU 0: Thread Heir 0x0a010004 priority=5
+  CPU 0: Thread Executing 0x0a010004 priority=5
+==> 9: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
+==> 10: # GOAL:   on CPUs 3-0 respectively
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  5 / 0x0a010004 @  5          false
+  CPU 1: 0x0a010003 @  6 / 0x0a010003 @  6          false
+  CPU 2: 0x0a010002 @  7 / 0x0a010002 @  7          false
+  CPU 3: 0x0a010001 @  8 / 0x0a010001 @  8          false
 === End of Ready Set of Threads
-==> 13: task_suspend SELF
-Suspending task (0x0a010001)
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x0a010001 priority=5
-  Thread Executing: 0x09010001 priority=255
-==> 14: # GOAL: want 0x09010001 as heir and executing on CPU 1
-==> 15: cpus
+==> 12: task_suspend SELF
+Suspending task (0x0a010004)
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+==> 13: # GOAL: want 0x09010001 as heir and executing on CPU 0
+==> 14: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010001 @255 / 0x09010001 @255          false
+  CPU 1: 0x0a010003 @  6 / 0x0a010003 @  6          false
+  CPU 2: 0x0a010002 @  7 / 0x0a010002 @  7          false
+  CPU 3: 0x0a010001 @  8 / 0x0a010001 @  8          false
 === End of Ready Set of Threads
-==> 16: dispatch
-==> 17: # GOAL: want 0x09010001 as heir and executing on CPU 1
-==> 18: cpus
+==> 15: # GOAL: want 0x09010001 as heir and executing on CPU 0
+==> 16: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x09010001 @255 / 0x09010001 @255 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x09010001 @255 / 0x09010001 @255          false
+  CPU 1: 0x0a010003 @  6 / 0x0a010003 @  6          false
+  CPU 2: 0x0a010002 @  7 / 0x0a010002 @  7          false
+  CPU 3: 0x0a010001 @  8 / 0x0a010001 @  8          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.scen
index ab25fb7..7de3d6e 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.scen
@@ -2,17 +2,15 @@
 #  Check blocking self on primary CPU
 #
 rtems_init 4
-task_create smp1 5
-task_create smp2 6
-task_create smp3 7
-task_create smp4 8
-dispatch
+task_create smp1 8
+task_create smp2 7
+task_create smp3 6
+task_create smp4 5
 # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-# GOAL:   on CPUs 1-4 respectively
+# GOAL:   on CPUs 3-0 respectively
 cpus
 task_suspend SELF
-# GOAL: want 0x09010001 as heir and executing on CPU 1
+# GOAL: want 0x09010001 as heir and executing on CPU 0
 cpus
-dispatch
-# GOAL: want 0x09010001 as heir and executing on CPU 1
+# GOAL: want 0x09010001 as heir and executing on CPU 0
 cpus
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.expected b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.expected
index e7df9bb..6ade3c7 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.expected
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.expected
@@ -4,72 +4,69 @@ verbose                   : 1
 ==> 2: #  Check blocking self on secondary CPU
 ==> 3: #
 ==> 4: rtems_init 4
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x09010001 priority=255
-==> 5: task_create smp1 5
+  CPU 0: Thread Heir 0x09010001 priority=255
+  CPU 0: Thread Executing 0x09010001 priority=255
+  CPU 1: Thread Heir 0x09010002 priority=255
+  CPU 1: Thread Executing 0x09010002 priority=255
+  CPU 2: Thread Heir 0x09010003 priority=255
+  CPU 2: Thread Executing 0x09010003 priority=255
+  CPU 3: Thread Heir 0x09010004 priority=255
+  CPU 3: Thread Executing 0x09010004 priority=255
+==> 5: task_create smp1 8
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp1) created: id=0x0a010001, priority=5
-Task (smp1) starting: id=0x0a010001, priority=5
-  Thread Heir: 0x0a010001 priority=5
-  Thread Executing: 0x0a010001 priority=5
-==> 6: task_create smp2 6
+Task (smp1) created: id=0x0a010001, priority=8
+Task (smp1) starting: id=0x0a010001, priority=8
+  CPU 3: Thread Heir 0x0a010001 priority=8
+  CPU 3: Thread Executing 0x0a010001 priority=8
+==> 6: task_create smp2 7
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp2) created: id=0x0a010002, priority=6
-Task (smp2) starting: id=0x0a010002, priority=6
-==> 7: task_create smp3 7
+Task (smp2) created: id=0x0a010002, priority=7
+Task (smp2) starting: id=0x0a010002, priority=7
+  CPU 2: Thread Heir 0x0a010002 priority=7
+  CPU 2: Thread Executing 0x0a010002 priority=7
+==> 7: task_create smp3 6
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp3) created: id=0x0a010003, priority=7
-Task (smp3) starting: id=0x0a010003, priority=7
-==> 8: task_create smp4 8
+Task (smp3) created: id=0x0a010003, priority=6
+Task (smp3) starting: id=0x0a010003, priority=6
+  CPU 1: Thread Heir 0x0a010003 priority=6
+  CPU 1: Thread Executing 0x0a010003 priority=6
+==> 8: task_create smp4 5
 Creating task with:  Preemption: yes Timeslicing: no
-Task (smp4) created: id=0x0a010004, priority=8
-Task (smp4) starting: id=0x0a010004, priority=8
-==> 9: dispatch
-=== Invoke Thread Dispatch on CPU 1
-  Thread Heir: 0x0a010002 priority=6
-  Thread Executing: 0x09010002 priority=255
-  Thread Executing: 0x0a010002 priority=6
-=== Invoke Thread Dispatch on CPU 2
-  Thread Heir: 0x0a010003 priority=7
-  Thread Executing: 0x09010003 priority=255
-  Thread Executing: 0x0a010003 priority=7
-=== Invoke Thread Dispatch on CPU 3
-  Thread Heir: 0x0a010004 priority=8
-  Thread Executing: 0x09010004 priority=255
-  Thread Executing: 0x0a010004 priority=8
-==> 10: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-==> 11: # GOAL:   on CPUs 1-4 respectively
-==> 12: cpus
+Task (smp4) created: id=0x0a010004, priority=5
+Task (smp4) starting: id=0x0a010004, priority=5
+  CPU 0: Thread Heir 0x0a010004 priority=5
+  CPU 0: Thread Executing 0x0a010004 priority=5
+==> 9: # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
+==> 10: # GOAL:   on CPUs 3-0 respectively
+==> 11: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x0a010003 @  7 / 0x0a010003 @  7 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  5 / 0x0a010004 @  5          false
+  CPU 1: 0x0a010003 @  6 / 0x0a010003 @  6          false
+  CPU 2: 0x0a010002 @  7 / 0x0a010002 @  7          false
+  CPU 3: 0x0a010001 @  8 / 0x0a010001 @  8          false
 === End of Ready Set of Threads
-==> 13: current_cpu 2
+==> 12: current_cpu 2
 Changing current CPU from 0 to 2
-==> 14: task_suspend SELF
-Suspending task (0x0a010003)
-  Thread Heir: 0x09010001 priority=255
-  Thread Executing: 0x0a010003 priority=7
-  Thread Executing: 0x09010001 priority=255
-==> 15: # GOAL: Want IDLE 0x09010001 as heir and executing on CPU 2
-==> 16: cpus
+==> 13: task_suspend SELF
+Suspending task (0x0a010002)
+  CPU 2: Thread Heir 0x09010001 priority=255
+  CPU 2: Thread Executing 0x09010001 priority=255
+==> 14: # GOAL: Want IDLE 0x09010001 as heir and executing on CPU 2
+==> 15: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x09010001 @255 / 0x09010001 @255 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  5 / 0x0a010004 @  5          false
+  CPU 1: 0x0a010003 @  6 / 0x0a010003 @  6          false
+  CPU 2: 0x09010001 @255 / 0x09010001 @255          false
+  CPU 3: 0x0a010001 @  8 / 0x0a010001 @  8          false
 === End of Ready Set of Threads
-==> 17: dispatch
-==> 18: # GOAL: Want IDLE 0x09010001 as heir and executing on CPU 2
-==> 19: cpus
+==> 16: # GOAL: Want IDLE 0x09010001 as heir and executing on CPU 2
+==> 17: cpus
 === CPU Status
-            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
-  CPU 0: 0x0a010001 @  5 / 0x0a010001 @  5 / 0x09010001 @255         false
-  CPU 1: 0x0a010002 @  6 / 0x0a010002 @  6 / 0x09010002 @255         false
-  CPU 2: 0x09010001 @255 / 0x09010001 @255 / 0x09010003 @255         false
-  CPU 3: 0x0a010004 @  8 / 0x0a010004 @  8 / 0x09010004 @255         false
+          EXECUTING      /   HEIR             / SWITCH NEEDED
+  CPU 0: 0x0a010004 @  5 / 0x0a010004 @  5          false
+  CPU 1: 0x0a010003 @  6 / 0x0a010003 @  6          false
+  CPU 2: 0x09010001 @255 / 0x09010001 @255          false
+  CPU 3: 0x0a010001 @  8 / 0x0a010001 @  8          false
 === End of Ready Set of Threads
diff --git a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.scen b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.scen
index 9660b7d..bd34551 100644
--- a/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.scen
+++ b/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.scen
@@ -2,18 +2,16 @@
 #  Check blocking self on secondary CPU
 #
 rtems_init 4
-task_create smp1 5
-task_create smp2 6
-task_create smp3 7
-task_create smp4 8
-dispatch
+task_create smp1 8
+task_create smp2 7
+task_create smp3 6
+task_create smp4 5
 # GOAL: want 0x0a010001 - 0x0a010004 as heir and executings
-# GOAL:   on CPUs 1-4 respectively
+# GOAL:   on CPUs 3-0 respectively
 cpus
 current_cpu 2
 task_suspend SELF
 # GOAL: Want IDLE 0x09010001 as heir and executing on CPU 2
 cpus
-dispatch
 # GOAL: Want IDLE 0x09010001 as heir and executing on CPU 2
 cpus




More information about the vc mailing list