source: rtems/testsuites/smptests/smpmrsp01/smpmrsp01.scn @ 864d3475

4.115
Last change on this file since 864d3475 was 864d3475, checked in by Sebastian Huber <sebastian.huber@…>, on 12/17/14 at 14:11:00

smp: Fix timeout for MrsP semaphores

The previous timeout handling was flawed. In case a waiting thread
helped out the owner could use the scheduler node indefinitely long.
Update the resource tree in _MRSP_Timeout() to avoid this issue.

Bug reported by Luca Bonato.

  • Property mode set to 100644
File size: 7.5 KB
Line 
1*** BEGIN OF TEST SMPMRSP 1 ***
2test MrsP flush error
3test MrsP initially locked error
4test MrsP nested obtain error
5test MrsP unlock order error
6test MrsP deadlock error
7test MrsP multiple obtain
8test MrsP various block and unblock
9[1] IDLE -> WORK (prio   4, node WORK)
10[0] MAIN -> IDLE (prio   3, node MAIN)
11[0] IDLE -> MAIN (prio   3, node MAIN)
12[1] WORK -> IDLE (prio   3, node WORK)
13[1] IDLE -> HIG1 (prio   2, node HIG1)
14[1] HIG1 -> IDLE (prio   3, node WORK)
15[1] IDLE -> HIG1 (prio   2, node HIG1)
16[1] HIG1 -> WORK (prio   3, node WORK)
17[1] WORK -> MAIN (prio   3, node WORK)
18[0] MAIN -> HIG0 (prio   2, node HIG0)
19[1] MAIN -> HIG1 (prio   2, node HIG1)
20[1] HIG1 -> WORK (prio   3, node WORK)
21[0] HIG0 -> MAIN (prio   3, node MAIN)
22[1] WORK -> MAIN (prio   3, node WORK)
23[0] MAIN -> HIG0 (prio   2, node HIG0)
24[1] MAIN -> HIG1 (prio   2, node HIG1)
25[1] HIG1 -> MAIN (prio   3, node WORK)
26[0] HIG0 -> IDLE (prio   4, node MAIN)
27[1] MAIN -> WORK (prio   3, node WORK)
28[0] IDLE -> MAIN (prio   4, node MAIN)
29test MrsP obtain and sleep and release
30[0] MAIN ->  RUN (prio   2, node  RUN)
31[0]  RUN -> MAIN (prio   1, node MAIN)
32[0] MAIN -> IDLE (prio   1, node MAIN)
33[0] IDLE -> MAIN (prio   1, node MAIN)
34test MrsP obtain and release with help
35[1] IDLE -> HELP (prio   3, node HELP)
36[0] MAIN -> IDLE (prio   2, node MAIN)
37[0] IDLE -> MAIN (prio   2, node MAIN)
38[1] HELP -> MAIN (prio   2, node HELP)
39[0] MAIN ->  RUN (prio   1, node  RUN)
40[1] MAIN -> HELP (prio   2, node HELP)
41[1] HELP -> MAIN (prio   2, node HELP)
42[0]  RUN -> IDLE (prio   2, node MAIN)
43[1] MAIN -> HELP (prio   2, node HELP)
44[1] HELP -> MAIN (prio   2, node HELP)
45[0] IDLE -> MAIN (prio   3, node MAIN)
46[1] MAIN -> HELP (prio   2, node HELP)
47test MrsP obtain and release
48[1] IDLE -> WORK (prio   4, node WORK)
49[1] WORK -> MAIN (prio   3, node WORK)
50[0] MAIN -> HIG0 (prio   1, node HIG0)
51[1] MAIN -> WORK (prio   4, node WORK)
52[0] HIG0 -> MAIN (prio   2, node MAIN)
53test MrsP load
54worker[0]
55  sleep = 53
56  timeout = 3445
57  obtain[0] = 7240
58  obtain[1] = 5484
59  obtain[2] = 12983
60  obtain[3] = 9453
61  obtain[4] = 16142
62  obtain[5] = 12509
63  obtain[6] = 16471
64  obtain[7] = 14380
65  obtain[8] = 16566
66  obtain[9] = 16192
67  obtain[10] = 14868
68  obtain[11] = 18208
69  obtain[12] = 12505
70  obtain[13] = 19995
71  obtain[14] = 11155
72  obtain[15] = 20684
73  obtain[16] = 7288
74  obtain[17] = 22252
75  obtain[18] = 6476
76  obtain[19] = 18299
77  obtain[20] = 5711
78  obtain[21] = 17063
79  obtain[22] = 4791
80  obtain[23] = 14655
81  obtain[24] = 3452
82  obtain[25] = 10565
83  obtain[26] = 2912
84  obtain[27] = 8142
85  obtain[28] = 2090
86  obtain[29] = 5086
87  obtain[30] = 1145
88  obtain[31] = 1946
89  cpu[0] = 378475
90  cpu[1] = 64814
91  cpu[2] = 132133
92  cpu[3] = 138047
93worker[1]
94  sleep = 1
95  timeout = 6
96  obtain[0] = 19
97  obtain[1] = 8
98  obtain[2] = 15
99  obtain[3] = 24
100  obtain[4] = 20
101  obtain[5] = 19
102  obtain[6] = 14
103  obtain[7] = 40
104  obtain[8] = 45
105  obtain[9] = 20
106  obtain[10] = 0
107  obtain[11] = 48
108  obtain[12] = 13
109  obtain[13] = 57
110  obtain[14] = 30
111  obtain[15] = 48
112  obtain[16] = 36
113  obtain[17] = 36
114  obtain[18] = 19
115  obtain[19] = 20
116  obtain[20] = 42
117  obtain[21] = 44
118  obtain[22] = 23
119  obtain[23] = 0
120  obtain[24] = 0
121  obtain[25] = 26
122  obtain[26] = 0
123  obtain[27] = 0
124  obtain[28] = 0
125  obtain[29] = 0
126  obtain[30] = 0
127  obtain[31] = 0
128  cpu[0] = 650
129  cpu[1] = 92
130  cpu[2] = 379
131  cpu[3] = 212
132worker[2]
133  sleep = 51
134  timeout = 3731
135  obtain[0] = 7182
136  obtain[1] = 5663
137  obtain[2] = 12945
138  obtain[3] = 9229
139  obtain[4] = 15592
140  obtain[5] = 12125
141  obtain[6] = 16767
142  obtain[7] = 14480
143  obtain[8] = 16620
144  obtain[9] = 16098
145  obtain[10] = 16409
146  obtain[11] = 18109
147  obtain[12] = 12995
148  obtain[13] = 19452
149  obtain[14] = 10719
150  obtain[15] = 20024
151  obtain[16] = 7769
152  obtain[17] = 21913
153  obtain[18] = 6636
154  obtain[19] = 18524
155  obtain[20] = 5952
156  obtain[21] = 16411
157  obtain[22] = 5228
158  obtain[23] = 14456
159  obtain[24] = 4292
160  obtain[25] = 11143
161  obtain[26] = 3019
162  obtain[27] = 8023
163  obtain[28] = 2006
164  obtain[29] = 4664
165  obtain[30] = 1109
166  obtain[31] = 1976
167  cpu[0] = 65356
168  cpu[1] = 381723
169  cpu[2] = 133444
170  cpu[3] = 134588
171worker[3]
172  sleep = 1
173  timeout = 11
174  obtain[0] = 11
175  obtain[1] = 6
176  obtain[2] = 33
177  obtain[3] = 20
178  obtain[4] = 10
179  obtain[5] = 10
180  obtain[6] = 28
181  obtain[7] = 18
182  obtain[8] = 27
183  obtain[9] = 40
184  obtain[10] = 33
185  obtain[11] = 36
186  obtain[12] = 26
187  obtain[13] = 0
188  obtain[14] = 15
189  obtain[15] = 16
190  obtain[16] = 0
191  obtain[17] = 18
192  obtain[18] = 0
193  obtain[19] = 42
194  obtain[20] = 0
195  obtain[21] = 88
196  obtain[22] = 0
197  obtain[23] = 24
198  obtain[24] = 0
199  obtain[25] = 0
200  obtain[26] = 0
201  obtain[27] = 28
202  obtain[28] = 0
203  obtain[29] = 0
204  obtain[30] = 31
205  obtain[31] = 0
206  cpu[0] = 136
207  cpu[1] = 573
208  cpu[2] = 291
209  cpu[3] = 121
210worker[4]
211  sleep = 47
212  timeout = 3278
213  obtain[0] = 7397
214  obtain[1] = 5723
215  obtain[2] = 13399
216  obtain[3] = 9018
217  obtain[4] = 16575
218  obtain[5] = 12731
219  obtain[6] = 16571
220  obtain[7] = 14376
221  obtain[8] = 16786
222  obtain[9] = 17022
223  obtain[10] = 15889
224  obtain[11] = 19338
225  obtain[12] = 13240
226  obtain[13] = 19055
227  obtain[14] = 11533
228  obtain[15] = 22667
229  obtain[16] = 7521
230  obtain[17] = 21826
231  obtain[18] = 6320
232  obtain[19] = 18522
233  obtain[20] = 6874
234  obtain[21] = 16498
235  obtain[22] = 4983
236  obtain[23] = 14210
237  obtain[24] = 4019
238  obtain[25] = 11510
239  obtain[26] = 3425
240  obtain[27] = 8809
241  obtain[28] = 2002
242  obtain[29] = 5197
243  obtain[30] = 996
244  obtain[31] = 2276
245  cpu[0] = 20729
246  cpu[1] = 19760
247  cpu[2] = 343613
248  cpu[3] = 348561
249worker[5]
250  sleep = 61
251  timeout = 3183
252  obtain[0] = 7291
253  obtain[1] = 5782
254  obtain[2] = 13633
255  obtain[3] = 9864
256  obtain[4] = 16465
257  obtain[5] = 12581
258  obtain[6] = 17135
259  obtain[7] = 14616
260  obtain[8] = 16524
261  obtain[9] = 16472
262  obtain[10] = 15194
263  obtain[11] = 18038
264  obtain[12] = 13801
265  obtain[13] = 19959
266  obtain[14] = 11693
267  obtain[15] = 20770
268  obtain[16] = 7328
269  obtain[17] = 23222
270  obtain[18] = 7186
271  obtain[19] = 19739
272  obtain[20] = 6584
273  obtain[21] = 17450
274  obtain[22] = 5241
275  obtain[23] = 14808
276  obtain[24] = 4287
277  obtain[25] = 11387
278  obtain[26] = 3367
279  obtain[27] = 8149
280  obtain[28] = 1887
281  obtain[29] = 4969
282  obtain[30] = 1123
283  obtain[31] = 1695
284  cpu[0] = 19504
285  cpu[1] = 20069
286  cpu[2] = 346015
287  cpu[3] = 350953
288worker[6]
289  sleep = 1
290  timeout = 15
291  obtain[0] = 26
292  obtain[1] = 22
293  obtain[2] = 45
294  obtain[3] = 32
295  obtain[4] = 45
296  obtain[5] = 76
297  obtain[6] = 49
298  obtain[7] = 64
299  obtain[8] = 99
300  obtain[9] = 70
301  obtain[10] = 55
302  obtain[11] = 48
303  obtain[12] = 39
304  obtain[13] = 28
305  obtain[14] = 60
306  obtain[15] = 48
307  obtain[16] = 17
308  obtain[17] = 74
309  obtain[18] = 38
310  obtain[19] = 60
311  obtain[20] = 63
312  obtain[21] = 66
313  obtain[22] = 23
314  obtain[23] = 48
315  obtain[24] = 0
316  obtain[25] = 78
317  obtain[26] = 0
318  obtain[27] = 43
319  obtain[28] = 0
320  obtain[29] = 0
321  obtain[30] = 0
322  obtain[31] = 32
323  cpu[0] = 71
324  cpu[1] = 39
325  cpu[2] = 1333
326  cpu[3] = 1254
327worker[7]
328  sleep = 1
329  timeout = 0
330  obtain[0] = 0
331  obtain[1] = 0
332  obtain[2] = 0
333  obtain[3] = 0
334  obtain[4] = 0
335  obtain[5] = 0
336  obtain[6] = 0
337  obtain[7] = 0
338  obtain[8] = 0
339  obtain[9] = 0
340  obtain[10] = 0
341  obtain[11] = 0
342  obtain[12] = 0
343  obtain[13] = 0
344  obtain[14] = 0
345  obtain[15] = 0
346  obtain[16] = 0
347  obtain[17] = 0
348  obtain[18] = 0
349  obtain[19] = 0
350  obtain[20] = 0
351  obtain[21] = 0
352  obtain[22] = 0
353  obtain[23] = 0
354  obtain[24] = 0
355  obtain[25] = 0
356  obtain[26] = 0
357  obtain[27] = 0
358  obtain[28] = 0
359  obtain[29] = 0
360  obtain[30] = 0
361  obtain[31] = 0
362  cpu[0] = 0
363  cpu[1] = 0
364  cpu[2] = 1
365  cpu[3] = 0
366migrations[0] = 437361
367migrations[1] = 437363
368migrations[2] = 441234
369migrations[3] = 433487
370*** END OF TEST SMPMRSP 1 ***
Note: See TracBrowser for help on using the repository browser.