summaryrefslogtreecommitdiffstats
path: root/schedsim/shell/schedsim_smpsimple
diff options
context:
space:
mode:
authorJennifer Averett <jennifer.averett@oarcorp.com>2014-05-13 09:30:12 -0500
committerJennifer Averett <jennifer.averett@oarcorp.com>2014-05-13 10:04:53 -0500
commit3ad6235dade6441f870f00825fc23bdb9bbe3f04 (patch)
tree4665376e21956838069bb5ca25a165a0ed237db8 /schedsim/shell/schedsim_smpsimple
parentNow appears to run again (diff)
downloadrtems-schedsim-3ad6235dade6441f870f00825fc23bdb9bbe3f04.tar.bz2
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.
Diffstat (limited to 'schedsim/shell/schedsim_smpsimple')
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.expected68
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus1_priority.scen4
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.expected67
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus1_resume_on_primary.scen3
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.expected38
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus1_suspend_on_primary.scen2
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case1.scen1
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case2.scen2
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_nonpreempt_case1.scen2
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.expected185
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_pick_older.scen22
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.expected143
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_priority.scen15
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_nopreempt.scen1
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.expected114
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_simple_preemption.scen16
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.expected97
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_all.scen2
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.expected111
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_primary.scen16
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.expected113
-rw-r--r--schedsim/shell/schedsim_smpsimple/scenarios/cpus4_suspend_on_secondary.scen12
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