Script File : cpus4_affinity_overlap_case1.scen verbose : 1 ==> 1: # ==> 2: # Create 2 sets of threads one that can run on cpus ==> 3: # {0,1} the others can run on cpus {1,2,3}. Then ==> 4: # swap the affinity of the two sets ==> 5: # ==> 6: rtems_init 4 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 ==> 7: task_create smp1 4 -a 0x0e Creating task with: Preemption: yes Timeslicing: no Task (smp1) created: id=0x0a010001, priority=4 Task (0x0a010001) Set affinity=0x0000000e Task (smp1) starting: id=0x0a010001, priority=4 CPU 3: Thread Heir: 0x0a010001 priority=4 CPU 3: Thread Executing: 0x0a010001 priority=4 ==> 8: task_create smp2 4 -a 0x0e Creating task with: Preemption: yes Timeslicing: no Task (smp2) created: id=0x0a010002, priority=4 Task (0x0a010002) Set affinity=0x0000000e Task (smp2) starting: id=0x0a010002, priority=4 CPU 2: Thread Heir: 0x0a010002 priority=4 CPU 2: Thread Executing: 0x0a010002 priority=4 ==> 9: task_create smp3 4 -a 0x03 Creating task with: Preemption: yes Timeslicing: no Task (smp3) created: id=0x0a010003, priority=4 Task (0x0a010003) Set affinity=0x00000003 Task (smp3) starting: id=0x0a010003, priority=4 CPU 1: Thread Heir: 0x0a010003 priority=4 CPU 1: Thread Executing: 0x0a010003 priority=4 ==> 10: task_create smp4 4 -a 0x03 Creating task with: Preemption: yes Timeslicing: no Task (smp4) created: id=0x0a010004, priority=4 Task (0x0a010004) Set affinity=0x00000003 Task (smp4) starting: id=0x0a010004, priority=4 CPU 0: Thread Heir: 0x0a010004 priority=4 CPU 0: Thread Executing: 0x0a010004 priority=4 ==> 11: ==> 12: # EXECUTING: {smp1 smp2 smp3 smp4} ==> 13: # READY: {IDLE IDLE IDLE IDLE} ==> 14: # GOAL: want 0x0a010004 - 0x0a010001 as heir and executings ==> 15: # GOAL: on CPUs 0 -3 respectively ==> 16: cpus smp4 smp3 smp2 smp1 === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010004 @ 4 / 0x0a010004 @ 4 false CPU 1: 0x0a010003 @ 4 / 0x0a010003 @ 4 false CPU 2: 0x0a010002 @ 4 / 0x0a010002 @ 4 false CPU 3: 0x0a010001 @ 4 / 0x0a010001 @ 4 false === End of Ready Set of Threads ==> 17: ==> 18: task_set_affinity smp1 0x03 CPU 3: Thread Heir: 0x09010001 priority=255 CPU 3: Thread Executing: 0x09010001 priority=255 Task (0x0a010001) Set affinity=0x00000003 ==> 19: # EXECUTING: {smp2 smp3 smp4 IDLE} ==> 20: # READY: {smp1 IDLE IDLE IDLE} ==> 21: # GOAL: want 0x0a010004, 0x0a010003, 0x0a010002,0x09010001 ==> 22: # GOAL: as heir and executings on CPUs 0-3 respectively ==> 23: cpus smp4 smp3 smp2 IDLE === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010004 @ 4 / 0x0a010004 @ 4 false CPU 1: 0x0a010003 @ 4 / 0x0a010003 @ 4 false CPU 2: 0x0a010002 @ 4 / 0x0a010002 @ 4 false CPU 3: 0x09010001 @255 / 0x09010001 @255 false === End of Ready Set of Threads ==> 24: ==> 25: task_set_affinity smp2 0x03 CPU 2: Thread Heir: 0x09010002 priority=255 CPU 2: Thread Executing: 0x09010002 priority=255 Task (0x0a010002) Set affinity=0x00000003 ==> 26: # EXECUTING: {smp3 smp4 IDLE IDLE} ==> 27: # READY: {smp1 smp2 IDLE IDLE} ==> 28: # GOAL: want 0x0a010004, 0x0a010003, 0x00910002,0x09010001 ==> 29: # GOAL: as heir and executings on CPUs 0-3 respectively ==> 30: cpus smp4 smp3 IDLE IDLE === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010004 @ 4 / 0x0a010004 @ 4 false CPU 1: 0x0a010003 @ 4 / 0x0a010003 @ 4 false CPU 2: 0x09010002 @255 / 0x09010002 @255 false CPU 3: 0x09010001 @255 / 0x09010001 @255 false === End of Ready Set of Threads ==> 31: ==> 32: task_set_affinity smp3 0x0e CPU 1: Thread Heir: 0x0a010002 priority=4 CPU 1: Thread Executing: 0x0a010002 priority=4 CPU 2: Thread Heir: 0x0a010003 priority=4 CPU 2: Thread Executing: 0x0a010003 priority=4 Task (0x0a010003) Set affinity=0x0000000e ==> 33: # EXECUTING: {smp4 smp2 smp3 IDLE} ==> 34: # READY: {smp1 smp2 IDLE IDLE} ==> 35: # GOAL: want 0x0a010004, 0x0a010002, 0x0a010003,0x09010001 ==> 36: # GOAL: as heir and executings on CPUs 0-3 respectively ==> 37: cpus smp4 smp2 smp3 IDLE === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010004 @ 4 / 0x0a010004 @ 4 false CPU 1: 0x0a010002 @ 4 / 0x0a010002 @ 4 false CPU 2: 0x0a010003 @ 4 / 0x0a010003 @ 4 false CPU 3: 0x09010001 @255 / 0x09010001 @255 false === End of Ready Set of Threads ==> 38: ==> 39: task_set_affinity smp4 0x0e CPU 0: Thread Heir: 0x0a010001 priority=4 CPU 0: Thread Executing: 0x0a010001 priority=4 CPU 3: Thread Heir: 0x0a010004 priority=4 CPU 3: Thread Executing: 0x0a010004 priority=4 Task (0x0a010004) Set affinity=0x0000000e ==> 40: # EXECUTING: {smp4 smp2 smp3 smp1} ==> 41: # READY: {IDLE IDLE IDLE IDLE} ==> 42: # GOAL: want 0x0a010001, 0x0a010002, 0x0a010003,0x0a010004 ==> 43: # GOAL: as heir and executings on CPUs 0-3 respectively ==> 44: cpus smp1 smp2 smp3 smp4 === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010001 @ 4 / 0x0a010001 @ 4 false CPU 1: 0x0a010002 @ 4 / 0x0a010002 @ 4 false CPU 2: 0x0a010003 @ 4 / 0x0a010003 @ 4 false CPU 3: 0x0a010004 @ 4 / 0x0a010004 @ 4 false === End of Ready Set of Threads