Commit | Line | Data |
---|---|---|
06e8b2a8 MD |
1 | make[1]: Entering directory `/home/compudj/doc/userspace-rcu/formal-model/urcu' |
2 | rm -f pan* trail.out .input.spin* *.spin.trail .input.define | |
3 | touch .input.define | |
4 | cat .input.define > pan.ltl | |
5 | cat DEFINES >> pan.ltl | |
6 | spin -f "!(`cat urcu_progress.ltl | grep -v ^//`)" >> pan.ltl | |
7 | cp urcu_progress_writer_error.define .input.define | |
8 | cat .input.define > .input.spin | |
9 | cat DEFINES >> .input.spin | |
10 | cat urcu.spin >> .input.spin | |
11 | rm -f .input.spin.trail | |
12 | spin -a -X -N pan.ltl .input.spin | |
13 | Exit-Status 0 | |
14 | gcc -O2 -w -DHASH64 -o pan pan.c | |
15 | ./pan -a -f -v -c1 -X -m10000000 -w20 | |
16 | warning: for p.o. reduction to be valid the never claim must be stutter-invariant | |
17 | (never claims generated from LTL formulae are stutter-invariant) | |
18 | depth 0: Claim reached state 5 (line 743) | |
19 | depth 12: Claim reached state 9 (line 748) | |
20 | depth 28: Claim reached state 9 (line 747) | |
21 | ||
22 | (Spin Version 5.1.7 -- 23 December 2008) | |
23 | + Partial Order Reduction | |
24 | ||
25 | Full statespace search for: | |
26 | never claim + | |
27 | assertion violations + (if within scope of claim) | |
28 | acceptance cycles + (fairness enabled) | |
29 | invalid end states - (disabled by never claim) | |
30 | ||
31 | State-vector 56 byte, depth reached 10679, errors: 0 | |
32 | 38555 states, stored (92500 visited) | |
33 | 1044204 states, matched | |
34 | 1136704 transitions (= visited+matched) | |
35 | 3867169 atomic steps | |
36 | hash conflicts: 6390 (resolved) | |
37 | ||
38 | Stats on memory usage (in Megabytes): | |
39 | 3.089 equivalent memory usage for states (stored*(State-vector + overhead)) | |
40 | 2.767 actual memory usage for states (compression: 89.58%) | |
41 | state-vector as stored = 47 byte + 28 byte overhead | |
42 | 8.000 memory used for hash table (-w20) | |
43 | 457.764 memory used for DFS stack (-m10000000) | |
44 | 468.498 total actual memory usage | |
45 | ||
46 | unreached in proctype urcu_reader_sig | |
47 | line 403, "pan.___", state 330, "(1)" | |
48 | line 614, "pan.___", state 411, "-end-" | |
49 | (2 of 411 states) | |
50 | unreached in proctype urcu_writer | |
51 | line 399, "pan.___", state 14, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
52 | line 408, "pan.___", state 46, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
53 | line 409, "pan.___", state 59, "(1)" | |
54 | line 418, "pan.___", state 89, "(1)" | |
55 | line 399, "pan.___", state 115, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
56 | line 409, "pan.___", state 160, "(1)" | |
57 | line 652, "pan.___", state 213, "(1)" | |
58 | line 175, "pan.___", state 222, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
59 | line 179, "pan.___", state 233, "(1)" | |
60 | line 160, "pan.___", state 254, "(1)" | |
61 | line 164, "pan.___", state 262, "(1)" | |
62 | line 168, "pan.___", state 274, "(1)" | |
63 | line 175, "pan.___", state 285, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<i)))" | |
64 | line 179, "pan.___", state 294, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<i)))" | |
65 | line 183, "pan.___", state 307, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<i)))" | |
66 | line 160, "pan.___", state 317, "(1)" | |
67 | line 164, "pan.___", state 325, "(1)" | |
68 | line 168, "pan.___", state 337, "(1)" | |
69 | line 175, "pan.___", state 352, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
70 | line 179, "pan.___", state 361, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<0)))" | |
71 | line 183, "pan.___", state 374, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
72 | line 160, "pan.___", state 384, "(1)" | |
73 | line 164, "pan.___", state 392, "(1)" | |
74 | line 168, "pan.___", state 404, "(1)" | |
75 | line 399, "pan.___", state 425, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
76 | line 403, "pan.___", state 441, "(1)" | |
77 | line 408, "pan.___", state 457, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
78 | line 409, "pan.___", state 470, "(1)" | |
79 | line 418, "pan.___", state 500, "(1)" | |
80 | line 399, "pan.___", state 526, "(1)" | |
81 | line 403, "pan.___", state 540, "(1)" | |
82 | line 408, "pan.___", state 556, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
83 | line 418, "pan.___", state 599, "(1)" | |
84 | line 403, "pan.___", state 640, "(1)" | |
85 | line 408, "pan.___", state 656, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
86 | line 418, "pan.___", state 699, "(1)" | |
87 | line 399, "pan.___", state 721, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
88 | line 399, "pan.___", state 723, "(1)" | |
89 | line 399, "pan.___", state 724, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<0)))" | |
90 | line 399, "pan.___", state 724, "else" | |
91 | line 399, "pan.___", state 727, "(1)" | |
92 | line 403, "pan.___", state 735, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<0)))" | |
93 | line 403, "pan.___", state 737, "(1)" | |
94 | line 403, "pan.___", state 738, "((cache_dirty_urcu_active_readers.bitfield&(1<<0)))" | |
95 | line 403, "pan.___", state 738, "else" | |
96 | line 403, "pan.___", state 741, "(1)" | |
97 | line 403, "pan.___", state 742, "(1)" | |
98 | line 403, "pan.___", state 742, "(1)" | |
99 | line 401, "pan.___", state 747, "((i<1))" | |
100 | line 401, "pan.___", state 747, "((i>=1))" | |
101 | line 408, "pan.___", state 753, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
102 | line 409, "pan.___", state 766, "(1)" | |
103 | line 409, "pan.___", state 767, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<0))))" | |
104 | line 409, "pan.___", state 767, "else" | |
105 | line 409, "pan.___", state 770, "(1)" | |
106 | line 409, "pan.___", state 771, "(1)" | |
107 | line 409, "pan.___", state 771, "(1)" | |
108 | line 413, "pan.___", state 779, "(1)" | |
109 | line 413, "pan.___", state 780, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<0))))" | |
110 | line 413, "pan.___", state 780, "else" | |
111 | line 413, "pan.___", state 783, "(1)" | |
112 | line 413, "pan.___", state 784, "(1)" | |
113 | line 413, "pan.___", state 784, "(1)" | |
114 | line 411, "pan.___", state 789, "((i<1))" | |
115 | line 411, "pan.___", state 789, "((i>=1))" | |
116 | line 418, "pan.___", state 796, "(1)" | |
117 | line 418, "pan.___", state 797, "(!((cache_dirty_generation_ptr.bitfield&(1<<0))))" | |
118 | line 418, "pan.___", state 797, "else" | |
119 | line 418, "pan.___", state 800, "(1)" | |
120 | line 418, "pan.___", state 801, "(1)" | |
121 | line 418, "pan.___", state 801, "(1)" | |
122 | line 420, "pan.___", state 804, "(1)" | |
123 | line 420, "pan.___", state 804, "(1)" | |
124 | line 356, "pan.___", state 810, "((sighand_exec==1))" | |
125 | line 356, "pan.___", state 810, "else" | |
126 | line 362, "pan.___", state 813, "sighand_exec = 1" | |
127 | line 399, "pan.___", state 826, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
128 | line 399, "pan.___", state 828, "(1)" | |
129 | line 399, "pan.___", state 829, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<0)))" | |
130 | line 399, "pan.___", state 829, "else" | |
131 | line 399, "pan.___", state 832, "(1)" | |
132 | line 403, "pan.___", state 840, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<0)))" | |
133 | line 403, "pan.___", state 842, "(1)" | |
134 | line 403, "pan.___", state 843, "((cache_dirty_urcu_active_readers.bitfield&(1<<0)))" | |
135 | line 403, "pan.___", state 843, "else" | |
136 | line 403, "pan.___", state 846, "(1)" | |
137 | line 403, "pan.___", state 847, "(1)" | |
138 | line 403, "pan.___", state 847, "(1)" | |
139 | line 401, "pan.___", state 852, "((i<1))" | |
140 | line 401, "pan.___", state 852, "((i>=1))" | |
141 | line 408, "pan.___", state 858, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
142 | line 409, "pan.___", state 871, "(1)" | |
143 | line 409, "pan.___", state 872, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<0))))" | |
144 | line 409, "pan.___", state 872, "else" | |
145 | line 409, "pan.___", state 875, "(1)" | |
146 | line 409, "pan.___", state 876, "(1)" | |
147 | line 409, "pan.___", state 876, "(1)" | |
148 | line 413, "pan.___", state 884, "(1)" | |
149 | line 413, "pan.___", state 885, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<0))))" | |
150 | line 413, "pan.___", state 885, "else" | |
151 | line 413, "pan.___", state 888, "(1)" | |
152 | line 413, "pan.___", state 889, "(1)" | |
153 | line 413, "pan.___", state 889, "(1)" | |
154 | line 411, "pan.___", state 894, "((i<1))" | |
155 | line 411, "pan.___", state 894, "((i>=1))" | |
156 | line 418, "pan.___", state 901, "(1)" | |
157 | line 418, "pan.___", state 902, "(!((cache_dirty_generation_ptr.bitfield&(1<<0))))" | |
158 | line 418, "pan.___", state 902, "else" | |
159 | line 418, "pan.___", state 905, "(1)" | |
160 | line 418, "pan.___", state 906, "(1)" | |
161 | line 418, "pan.___", state 906, "(1)" | |
162 | line 420, "pan.___", state 909, "(1)" | |
163 | line 420, "pan.___", state 909, "(1)" | |
164 | line 362, "pan.___", state 918, "sighand_exec = 1" | |
165 | line 403, "pan.___", state 949, "(1)" | |
166 | line 408, "pan.___", state 965, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
167 | line 418, "pan.___", state 1008, "(1)" | |
168 | line 403, "pan.___", state 1046, "(1)" | |
169 | line 408, "pan.___", state 1062, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
170 | line 418, "pan.___", state 1105, "(1)" | |
171 | line 399, "pan.___", state 1131, "(1)" | |
172 | line 403, "pan.___", state 1145, "(1)" | |
173 | line 408, "pan.___", state 1161, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
174 | line 418, "pan.___", state 1204, "(1)" | |
175 | line 403, "pan.___", state 1245, "(1)" | |
176 | line 408, "pan.___", state 1261, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
177 | line 418, "pan.___", state 1304, "(1)" | |
178 | line 399, "pan.___", state 1326, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
179 | line 399, "pan.___", state 1328, "(1)" | |
180 | line 399, "pan.___", state 1329, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<0)))" | |
181 | line 399, "pan.___", state 1329, "else" | |
182 | line 399, "pan.___", state 1332, "(1)" | |
183 | line 403, "pan.___", state 1340, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<0)))" | |
184 | line 403, "pan.___", state 1342, "(1)" | |
185 | line 403, "pan.___", state 1343, "((cache_dirty_urcu_active_readers.bitfield&(1<<0)))" | |
186 | line 403, "pan.___", state 1343, "else" | |
187 | line 403, "pan.___", state 1346, "(1)" | |
188 | line 403, "pan.___", state 1347, "(1)" | |
189 | line 403, "pan.___", state 1347, "(1)" | |
190 | line 401, "pan.___", state 1352, "((i<1))" | |
191 | line 401, "pan.___", state 1352, "((i>=1))" | |
192 | line 408, "pan.___", state 1358, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
193 | line 409, "pan.___", state 1371, "(1)" | |
194 | line 409, "pan.___", state 1372, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<0))))" | |
195 | line 409, "pan.___", state 1372, "else" | |
196 | line 409, "pan.___", state 1375, "(1)" | |
197 | line 409, "pan.___", state 1376, "(1)" | |
198 | line 409, "pan.___", state 1376, "(1)" | |
199 | line 413, "pan.___", state 1384, "(1)" | |
200 | line 413, "pan.___", state 1385, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<0))))" | |
201 | line 413, "pan.___", state 1385, "else" | |
202 | line 413, "pan.___", state 1388, "(1)" | |
203 | line 413, "pan.___", state 1389, "(1)" | |
204 | line 413, "pan.___", state 1389, "(1)" | |
205 | line 411, "pan.___", state 1394, "((i<1))" | |
206 | line 411, "pan.___", state 1394, "((i>=1))" | |
207 | line 418, "pan.___", state 1401, "(1)" | |
208 | line 418, "pan.___", state 1402, "(!((cache_dirty_generation_ptr.bitfield&(1<<0))))" | |
209 | line 418, "pan.___", state 1402, "else" | |
210 | line 418, "pan.___", state 1405, "(1)" | |
211 | line 418, "pan.___", state 1406, "(1)" | |
212 | line 418, "pan.___", state 1406, "(1)" | |
213 | line 420, "pan.___", state 1409, "(1)" | |
214 | line 420, "pan.___", state 1409, "(1)" | |
215 | line 356, "pan.___", state 1415, "((sighand_exec==1))" | |
216 | line 356, "pan.___", state 1415, "else" | |
217 | line 362, "pan.___", state 1418, "sighand_exec = 1" | |
218 | line 399, "pan.___", state 1431, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
219 | line 399, "pan.___", state 1433, "(1)" | |
220 | line 399, "pan.___", state 1434, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<0)))" | |
221 | line 399, "pan.___", state 1434, "else" | |
222 | line 399, "pan.___", state 1437, "(1)" | |
223 | line 403, "pan.___", state 1445, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<0)))" | |
224 | line 403, "pan.___", state 1447, "(1)" | |
225 | line 403, "pan.___", state 1448, "((cache_dirty_urcu_active_readers.bitfield&(1<<0)))" | |
226 | line 403, "pan.___", state 1448, "else" | |
227 | line 403, "pan.___", state 1451, "(1)" | |
228 | line 403, "pan.___", state 1452, "(1)" | |
229 | line 403, "pan.___", state 1452, "(1)" | |
230 | line 401, "pan.___", state 1457, "((i<1))" | |
231 | line 401, "pan.___", state 1457, "((i>=1))" | |
232 | line 408, "pan.___", state 1463, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
233 | line 409, "pan.___", state 1476, "(1)" | |
234 | line 409, "pan.___", state 1477, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<0))))" | |
235 | line 409, "pan.___", state 1477, "else" | |
236 | line 409, "pan.___", state 1480, "(1)" | |
237 | line 409, "pan.___", state 1481, "(1)" | |
238 | line 409, "pan.___", state 1481, "(1)" | |
239 | line 413, "pan.___", state 1489, "(1)" | |
240 | line 413, "pan.___", state 1490, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<0))))" | |
241 | line 413, "pan.___", state 1490, "else" | |
242 | line 413, "pan.___", state 1493, "(1)" | |
243 | line 413, "pan.___", state 1494, "(1)" | |
244 | line 413, "pan.___", state 1494, "(1)" | |
245 | line 411, "pan.___", state 1499, "((i<1))" | |
246 | line 411, "pan.___", state 1499, "((i>=1))" | |
247 | line 418, "pan.___", state 1506, "(1)" | |
248 | line 418, "pan.___", state 1507, "(!((cache_dirty_generation_ptr.bitfield&(1<<0))))" | |
249 | line 418, "pan.___", state 1507, "else" | |
250 | line 418, "pan.___", state 1510, "(1)" | |
251 | line 418, "pan.___", state 1511, "(1)" | |
252 | line 418, "pan.___", state 1511, "(1)" | |
253 | line 420, "pan.___", state 1514, "(1)" | |
254 | line 420, "pan.___", state 1514, "(1)" | |
255 | line 362, "pan.___", state 1523, "sighand_exec = 1" | |
256 | line 179, "pan.___", state 1548, "(1)" | |
257 | line 183, "pan.___", state 1559, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
258 | line 160, "pan.___", state 1569, "(1)" | |
259 | line 164, "pan.___", state 1577, "(1)" | |
260 | line 168, "pan.___", state 1589, "(1)" | |
261 | line 175, "pan.___", state 1600, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<i)))" | |
262 | line 179, "pan.___", state 1609, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<i)))" | |
263 | line 183, "pan.___", state 1622, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<i)))" | |
264 | line 160, "pan.___", state 1632, "(1)" | |
265 | line 164, "pan.___", state 1640, "(1)" | |
266 | line 168, "pan.___", state 1652, "(1)" | |
267 | line 175, "pan.___", state 1667, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<0)))" | |
268 | line 179, "pan.___", state 1676, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<0)))" | |
269 | line 183, "pan.___", state 1689, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<0)))" | |
270 | line 160, "pan.___", state 1699, "(1)" | |
271 | line 164, "pan.___", state 1707, "(1)" | |
272 | line 168, "pan.___", state 1719, "(1)" | |
273 | line 702, "pan.___", state 1758, "-end-" | |
274 | (173 of 1758 states) | |
275 | unreached in proctype :init: | |
276 | (0 of 46 states) | |
277 | unreached in proctype :never: | |
278 | line 750, "pan.___", state 11, "-end-" | |
279 | (1 of 11 states) | |
280 | ||
281 | pan: elapsed time 0.89 seconds | |
282 | pan: rate 103932.58 states/second | |
283 | pan: avg transition delay 7.8297e-07 usec | |
284 | cp .input.spin urcu_progress_writer_error.spin.input | |
285 | cp .input.spin.trail urcu_progress_writer_error.spin.input.trail | |
286 | make[1]: Leaving directory `/home/compudj/doc/userspace-rcu/formal-model/urcu' |