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
|
Script File : scenarios/cpus4_affinity_migrate_case2.scen
verbose : 1
==> 1: #
==> 2: # Create threads of single cpu affinity to fill the
==> 3: # cpus. Have a single of the same priority on the
==> 4: # ready chain that can run on any cpu. Change the
==> 5: # affinity of one of the running threads forcing it
==> 6: # to move to the ready chain and quit running.
==> 7: #
==> 8: 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
==> 9: task_create smp1 4 -a 0x2
Creating task with: Preemption: yes Timeslicing: no
Task (smp1) created: id=0x0a010001, priority=4
Task (0x0a010001) Set affinity=0x00000002
Task (smp1) starting: id=0x0a010001, priority=4
CPU 1: Thread Heir 0x0a010001 priority=4
CPU 1: Thread Executing 0x0a010001 priority=4
==> 10: task_create smp2 4 -a 0x1
Creating task with: Preemption: yes Timeslicing: no
Task (smp2) created: id=0x0a010002, priority=4
Task (0x0a010002) Set affinity=0x00000001
Task (smp2) starting: id=0x0a010002, priority=4
CPU 0: Thread Heir 0x0a010002 priority=4
CPU 0: Thread Executing 0x0a010002 priority=4
==> 11: task_create smp3 4 -a 0x8
Creating task with: Preemption: yes Timeslicing: no
Task (smp3) created: id=0x0a010003, priority=4
Task (0x0a010003) Set affinity=0x00000008
Task (smp3) starting: id=0x0a010003, priority=4
CPU 3: Thread Heir 0x0a010003 priority=4
CPU 3: Thread Executing 0x0a010003 priority=4
==> 12: task_create smp4 4 -a 0x4
Creating task with: Preemption: yes Timeslicing: no
Task (smp4) created: id=0x0a010004, priority=4
Task (0x0a010004) Set affinity=0x00000004
Task (smp4) starting: id=0x0a010004, priority=4
CPU 2: Thread Heir 0x0a010004 priority=4
CPU 2: Thread Executing 0x0a010004 priority=4
==> 13: task_create smp5 4
Creating task with: Preemption: yes Timeslicing: no
Task (smp5) created: id=0x0a010005, priority=4
Task (smp5) starting: id=0x0a010005, priority=4
==> 14:
==> 15: # GOAL: want 0x0a010002, 0x0a010001, 0x0a010004, 0x0a010003
==> 16: # GOAL: as heir and executings on CPUs 0-3 respectively
==> 17: cpus smp2 smp1 smp4 smp3
=== CPU Status
EXECUTING / HEIR / SWITCH NEEDED
CPU 0: 0x0a010002 @ 4 / 0x0a010002 @ 4 false
CPU 1: 0x0a010001 @ 4 / 0x0a010001 @ 4 false
CPU 2: 0x0a010004 @ 4 / 0x0a010004 @ 4 false
CPU 3: 0x0a010003 @ 4 / 0x0a010003 @ 4 false
=== End of Ready Set of Threads
==> 18:
==> 19:
==> 20: task_set_affinity smp1 0x0e
CPU 1: Thread Heir 0x0a010005 priority=4
CPU 1: Thread Executing 0x0a010005 priority=4
Task (0x0a010001) Set affinity=0x0000000e
==> 21: # GOAL: want 0x0a010002, 0x0a010005, 0x0a010004, 0x0a010003
==> 22: # GOAL: as heir and executings on CPUs 0-3 respectively
==> 23: cpus smp2 smp5 smp4 smp3
=== CPU Status
EXECUTING / HEIR / SWITCH NEEDED
CPU 0: 0x0a010002 @ 4 / 0x0a010002 @ 4 false
CPU 1: 0x0a010005 @ 4 / 0x0a010005 @ 4 false
CPU 2: 0x0a010004 @ 4 / 0x0a010004 @ 4 false
CPU 3: 0x0a010003 @ 4 / 0x0a010003 @ 4 false
=== End of Ready Set of Threads
==> 24:
|