1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
Script File : scenarios/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
|