Script File : cpus4_affinity_block_case1.scen verbose : 1 ==> 1: # ==> 2: # Block a thread in an application with thread affinity and ==> 3: # priorities such that finding an heir requires scanning the ==> 4: # ready set of threads. ==> 5: # ==> 6: # Basic premise: ==> 7: # - Two threads at low priority, affinity for core 0 ==> 8: # - More threads than core at high priority, affinity for all but core 0 ==> 9: # ==> 10: 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 ==> 11: task_create smp1 -a 0xe 10 Creating task with: Preemption: yes Timeslicing: no Task (smp1) created: id=0x0a010001, priority=10 Task (0x0a010001) Set affinity=0x0000000e Task (smp1) starting: id=0x0a010001, priority=10 CPU 3: Thread Heir: 0x0a010001 priority=10 CPU 3: Thread Executing: 0x0a010001 priority=10 ==> 12: task_create smp2 -a 0xe 10 Creating task with: Preemption: yes Timeslicing: no Task (smp2) created: id=0x0a010002, priority=10 Task (0x0a010002) Set affinity=0x0000000e Task (smp2) starting: id=0x0a010002, priority=10 CPU 2: Thread Heir: 0x0a010002 priority=10 CPU 2: Thread Executing: 0x0a010002 priority=10 ==> 13: task_create smp3 -a 0xe 10 Creating task with: Preemption: yes Timeslicing: no Task (smp3) created: id=0x0a010003, priority=10 Task (0x0a010003) Set affinity=0x0000000e Task (smp3) starting: id=0x0a010003, priority=10 CPU 1: Thread Heir: 0x0a010003 priority=10 CPU 1: Thread Executing: 0x0a010003 priority=10 ==> 14: task_create smp4 -a 0xe 10 Creating task with: Preemption: yes Timeslicing: no Task (smp4) created: id=0x0a010004, priority=10 Task (0x0a010004) Set affinity=0x0000000e Task (smp4) starting: id=0x0a010004, priority=10 ==> 15: # GOAL: Core 0 should be idle ==> 16: # GOAL: Cores 1-3 should be 0x0a01000[321] respectively ==> 17: cpus IDLE smp3 smp2 smp1 === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x09010001 @255 / 0x09010001 @255 false CPU 1: 0x0a010003 @ 10 / 0x0a010003 @ 10 false CPU 2: 0x0a010002 @ 10 / 0x0a010002 @ 10 false CPU 3: 0x0a010001 @ 10 / 0x0a010001 @ 10 false === End of Ready Set of Threads ==> 18: ==> 19: # check_tasks IDLE smp3 smp2 smp1 ==> 20: # GOAL: Core 0 should have aff1 0x0a010005 ==> 21: # GOAL: Cores 1-3 should be 0x0a01000[321] respectively ==> 22: task_create aff1 -a 0x1 11 Creating task with: Preemption: yes Timeslicing: no Task (aff1) created: id=0x0a010005, priority=11 Task (0x0a010005) Set affinity=0x00000001 Task (aff1) starting: id=0x0a010005, priority=11 CPU 0: Thread Heir: 0x0a010005 priority=11 CPU 0: Thread Executing: 0x0a010005 priority=11 ==> 23: cpus aff1 smp3 smp2 smp1 === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010005 @ 11 / 0x0a010005 @ 11 false CPU 1: 0x0a010003 @ 10 / 0x0a010003 @ 10 false CPU 2: 0x0a010002 @ 10 / 0x0a010002 @ 10 false CPU 3: 0x0a010001 @ 10 / 0x0a010001 @ 10 false === End of Ready Set of Threads ==> 24: ==> 25: # Create a low priority task with affinity to core 0 ==> 26: task_create aff2 -a 0x1 11 Creating task with: Preemption: yes Timeslicing: no Task (aff2) created: id=0x0a010006, priority=11 Task (0x0a010006) Set affinity=0x00000001 Task (aff2) starting: id=0x0a010006, priority=11 ==> 27: cpus aff1 smp3 smp2 smp1 === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010005 @ 11 / 0x0a010005 @ 11 false CPU 1: 0x0a010003 @ 10 / 0x0a010003 @ 10 false CPU 2: 0x0a010002 @ 10 / 0x0a010002 @ 10 false CPU 3: 0x0a010001 @ 10 / 0x0a010001 @ 10 false === End of Ready Set of Threads ==> 28: task_suspend aff1 Suspending task (0x0a010005) CPU 0: Thread Heir: 0x0a010006 priority=11 CPU 0: Thread Executing: 0x0a010006 priority=11 ==> 29: cpus aff2 smp3 smp2 smp1 === CPU Status EXECUTING / HEIR / SWITCH NEEDED CPU 0: 0x0a010006 @ 11 / 0x0a010006 @ 11 false CPU 1: 0x0a010003 @ 10 / 0x0a010003 @ 10 false CPU 2: 0x0a010002 @ 10 / 0x0a010002 @ 10 false CPU 3: 0x0a010001 @ 10 / 0x0a010001 @ 10 false === End of Ready Set of Threads