summaryrefslogtreecommitdiffstats
path: root/schedsim/shell/schedsim_smpsimple/scenarios/cpus4_mode_case2.expected
blob: 6b0086f771cf77126e7876aa886872a176c30996 (plain) (blame)
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
Script File               : scenarios/cpus4_mode_case2.scen
verbose                   : 1
==> 1: #
==> 2: #  Show how having a non-preemptive task can create a
==> 3: #  priority inversion
==> 4: #
==> 5: rtems_init 4
  Thread Heir: 0x09010001 priority=255
  Thread Executing: 0x09010001 priority=255
==> 6: task_create -p smp1 4
Creating task with:  Preemption: no Timeslicing: no
Task (smp1) created: id=0x0a010001, priority=4
Task (smp1) starting: id=0x0a010001, priority=4
  Thread Heir: 0x0a010001 priority=4
  Thread Executing: 0x0a010001 priority=4
==> 7: task_create -p smp2 5
Creating task with:  Preemption: no Timeslicing: no
Task (smp2) created: id=0x0a010002, priority=5
Task (smp2) starting: id=0x0a010002, priority=5
==> 8: task_create -p smp3 4
Creating task with:  Preemption: no Timeslicing: no
Task (smp3) created: id=0x0a010003, priority=4
Task (smp3) starting: id=0x0a010003, priority=4
==> 9: task_create -p smp4 4
Creating task with:  Preemption: no Timeslicing: no
Task (smp4) created: id=0x0a010004, priority=4
Task (smp4) starting: id=0x0a010004, priority=4
==> 10: dispatch
=== Invoke Thread Dispatch on CPU 1
  Thread Heir: 0x0a010002 priority=5
  Thread Executing: 0x09010002 priority=255
  Thread Executing: 0x0a010002 priority=5
=== Invoke Thread Dispatch on CPU 2
  Thread Heir: 0x0a010003 priority=4
  Thread Executing: 0x09010003 priority=255
  Thread Executing: 0x0a010003 priority=4
=== Invoke Thread Dispatch on CPU 3
  Thread Heir: 0x0a010004 priority=4
  Thread Executing: 0x09010004 priority=255
  Thread Executing: 0x0a010004 priority=4
==> 11: # GOAL: 0x0a010001 - 0x0a010004 are heir and executing
==> 12: # GOAL:   on CPUs 0 - 3 respectively
==> 13: cpus
=== CPU Status
            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
  CPU 0: 0x0a010001 @  4 / 0x0a010001 @  4 / 0x09010001 @255         false
  CPU 1: 0x0a010002 @  5 / 0x0a010002 @  5 / 0x09010002 @255         false
  CPU 2: 0x0a010003 @  4 / 0x0a010003 @  4 / 0x09010003 @255         false
  CPU 3: 0x0a010004 @  4 / 0x0a010004 @  4 / 0x09010004 @255         false
=== End of Ready Set of Threads
==> 14: 
==> 15: task_create smp5 3
Creating task with:  Preemption: yes Timeslicing: no
  Thread Heir: 0x0a010001 priority=4
  Thread Executing: 0x0a010001 priority=4
Task (smp5) created: id=0x0a010005, priority=3
Task (smp5) starting: id=0x0a010005, priority=3
==> 16: dispatch
==> 17: # GOAL: 0x0a010001 - 0x0a010004 are executing on CPUs 0 - 3.
==> 18: # GOAL:   All are also heir EXCEPT 0x0a010005 is heir on CPU 1.
==> 19: # GOAL: **** SHOWS INVERSION - CPU 1 has NO PREEMPT TASK ****
==> 20: cpus
=== CPU Status
            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
  CPU 0: 0x0a010001 @  4 / 0x0a010001 @  4 / 0x09010001 @255         false
  CPU 1: 0x0a010002 @  5 / 0x0a010005 @  3 / 0x09010002 @255         false
  CPU 2: 0x0a010003 @  4 / 0x0a010003 @  4 / 0x09010003 @255         false
  CPU 3: 0x0a010004 @  4 / 0x0a010004 @  4 / 0x09010004 @255         false
=== End of Ready Set of Threads
==> 21: 
==> 22: current_cpu 1
Changing current CPU from 0 to 1
==> 23: task_mode -P
  Thread Heir: 0x0a010005 priority=3
  Thread Executing: 0x0a010002 priority=5
  Thread Executing: 0x0a010005 priority=3
Previous Mode: Preemption: no Timeslicing: no
Current Mode:  Preemption: yes Timeslicing: no
==> 24: dispatch
==> 25: # GOAL: 0x0a010001, 0x0a010005, 0x0a010003, and 0x0a010004 are
==> 26: # GOAL:   heir and executing on CPUs 0 - 3
==> 27: cpus
=== CPU Status
            EXECUTING    /     HEIR         /    IDLE        /  SWITCH NEEDED
  CPU 0: 0x0a010001 @  4 / 0x0a010001 @  4 / 0x09010001 @255         false
  CPU 1: 0x0a010005 @  3 / 0x0a010005 @  3 / 0x09010002 @255         false
  CPU 2: 0x0a010003 @  4 / 0x0a010003 @  4 / 0x09010003 @255         false
  CPU 3: 0x0a010004 @  4 / 0x0a010004 @  4 / 0x09010004 @255         false
=== End of Ready Set of Threads