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_free.ltl | grep -v ^//`)" >> pan.ltl | |
7 | cp urcu_free_no_wmb.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 -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 744) | |
19 | pan: claim violated! (at depth 1882) | |
20 | pan: wrote .input.spin.trail | |
21 | ||
22 | (Spin Version 5.1.7 -- 23 December 2008) | |
23 | Warning: Search not completed | |
24 | + Partial Order Reduction | |
25 | ||
26 | Full statespace search for: | |
27 | never claim + | |
28 | assertion violations + (if within scope of claim) | |
29 | acceptance cycles + (fairness disabled) | |
30 | invalid end states - (disabled by never claim) | |
31 | ||
32 | State-vector 56 byte, depth reached 4174, errors: 1 | |
33 | 367189 states, stored | |
34 | 3431533 states, matched | |
35 | 3798722 transitions (= stored+matched) | |
36 | 13407384 atomic steps | |
37 | hash conflicts: 253700 (resolved) | |
38 | ||
39 | Stats on memory usage (in Megabytes): | |
40 | 29.415 equivalent memory usage for states (stored*(State-vector + overhead)) | |
41 | 22.811 actual memory usage for states (compression: 77.55%) | |
42 | state-vector as stored = 37 byte + 28 byte overhead | |
43 | 8.000 memory used for hash table (-w20) | |
44 | 457.764 memory used for DFS stack (-m10000000) | |
45 | 488.518 total actual memory usage | |
46 | ||
47 | unreached in proctype urcu_reader | |
48 | line 399, "pan.___", state 16, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
49 | line 408, "pan.___", state 48, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
50 | line 409, "pan.___", state 61, "(1)" | |
51 | line 418, "pan.___", state 91, "(1)" | |
52 | line 399, "pan.___", state 106, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
53 | line 408, "pan.___", state 138, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
54 | line 409, "pan.___", state 151, "(1)" | |
55 | line 418, "pan.___", state 181, "(1)" | |
56 | line 399, "pan.___", state 197, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
57 | line 408, "pan.___", state 229, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
58 | line 409, "pan.___", state 242, "(1)" | |
59 | line 418, "pan.___", state 272, "(1)" | |
60 | line 399, "pan.___", state 315, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
61 | line 403, "pan.___", state 331, "(1)" | |
62 | line 408, "pan.___", state 347, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
63 | line 409, "pan.___", state 360, "(1)" | |
64 | line 418, "pan.___", state 390, "(1)" | |
65 | line 540, "pan.___", state 414, "-end-" | |
66 | (18 of 414 states) | |
67 | unreached in proctype urcu_writer | |
68 | line 399, "pan.___", state 14, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
69 | line 399, "pan.___", state 20, "(1)" | |
70 | line 403, "pan.___", state 28, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
71 | line 403, "pan.___", state 34, "(1)" | |
72 | line 403, "pan.___", state 35, "(1)" | |
73 | line 403, "pan.___", state 35, "(1)" | |
74 | line 401, "pan.___", state 40, "((i<1))" | |
75 | line 401, "pan.___", state 40, "((i>=1))" | |
76 | line 408, "pan.___", state 46, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
77 | line 409, "pan.___", state 59, "(1)" | |
78 | line 409, "pan.___", state 60, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid))))" | |
79 | line 409, "pan.___", state 60, "else" | |
80 | line 409, "pan.___", state 63, "(1)" | |
81 | line 409, "pan.___", state 64, "(1)" | |
82 | line 409, "pan.___", state 64, "(1)" | |
83 | line 413, "pan.___", state 72, "(1)" | |
84 | line 413, "pan.___", state 73, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
85 | line 413, "pan.___", state 73, "else" | |
86 | line 413, "pan.___", state 76, "(1)" | |
87 | line 413, "pan.___", state 77, "(1)" | |
88 | line 413, "pan.___", state 77, "(1)" | |
89 | line 411, "pan.___", state 82, "((i<1))" | |
90 | line 411, "pan.___", state 82, "((i>=1))" | |
91 | line 418, "pan.___", state 89, "(1)" | |
92 | line 418, "pan.___", state 90, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
93 | line 418, "pan.___", state 90, "else" | |
94 | line 418, "pan.___", state 93, "(1)" | |
95 | line 418, "pan.___", state 94, "(1)" | |
96 | line 418, "pan.___", state 94, "(1)" | |
97 | line 420, "pan.___", state 97, "(1)" | |
98 | line 420, "pan.___", state 97, "(1)" | |
99 | line 369, "pan.___", state 99, "(1)" | |
100 | line 639, "pan.___", state 103, "cached_generation_ptr.val[_pid] = (old_gen+1)" | |
101 | line 637, "pan.___", state 104, "old_gen = cached_generation_ptr.val[_pid]" | |
102 | line 399, "pan.___", state 108, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
103 | line 399, "pan.___", state 114, "(1)" | |
104 | line 403, "pan.___", state 122, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
105 | line 403, "pan.___", state 128, "(1)" | |
106 | line 403, "pan.___", state 129, "(1)" | |
107 | line 403, "pan.___", state 129, "(1)" | |
108 | line 401, "pan.___", state 134, "((i<1))" | |
109 | line 401, "pan.___", state 134, "((i>=1))" | |
110 | line 409, "pan.___", state 153, "(1)" | |
111 | line 409, "pan.___", state 154, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid))))" | |
112 | line 409, "pan.___", state 154, "else" | |
113 | line 409, "pan.___", state 157, "(1)" | |
114 | line 409, "pan.___", state 158, "(1)" | |
115 | line 409, "pan.___", state 158, "(1)" | |
116 | line 413, "pan.___", state 166, "(1)" | |
117 | line 413, "pan.___", state 167, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
118 | line 413, "pan.___", state 167, "else" | |
119 | line 413, "pan.___", state 170, "(1)" | |
120 | line 413, "pan.___", state 171, "(1)" | |
121 | line 413, "pan.___", state 171, "(1)" | |
122 | line 411, "pan.___", state 176, "((i<1))" | |
123 | line 411, "pan.___", state 176, "((i>=1))" | |
124 | line 418, "pan.___", state 183, "(1)" | |
125 | line 418, "pan.___", state 184, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
126 | line 418, "pan.___", state 184, "else" | |
127 | line 418, "pan.___", state 187, "(1)" | |
128 | line 418, "pan.___", state 188, "(1)" | |
129 | line 418, "pan.___", state 188, "(1)" | |
130 | line 420, "pan.___", state 191, "(1)" | |
131 | line 420, "pan.___", state 191, "(1)" | |
132 | line 369, "pan.___", state 193, "(1)" | |
133 | line 652, "pan.___", state 199, "(1)" | |
134 | line 646, "pan.___", state 202, "((write_lock==0))" | |
135 | line 646, "pan.___", state 202, "else" | |
136 | line 644, "pan.___", state 203, "(1)" | |
137 | line 160, "pan.___", state 209, "(1)" | |
138 | line 164, "pan.___", state 217, "(1)" | |
139 | line 164, "pan.___", state 218, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
140 | line 164, "pan.___", state 218, "else" | |
141 | line 162, "pan.___", state 223, "((j<1))" | |
142 | line 162, "pan.___", state 223, "((j>=1))" | |
143 | line 168, "pan.___", state 229, "(1)" | |
144 | line 168, "pan.___", state 230, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
145 | line 168, "pan.___", state 230, "else" | |
146 | line 160, "pan.___", state 241, "(1)" | |
147 | line 168, "pan.___", state 261, "(1)" | |
148 | line 160, "pan.___", state 277, "(1)" | |
149 | line 164, "pan.___", state 285, "(1)" | |
150 | line 168, "pan.___", state 297, "(1)" | |
151 | line 399, "pan.___", state 311, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
152 | line 403, "pan.___", state 325, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
153 | line 408, "pan.___", state 343, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
154 | line 409, "pan.___", state 356, "(1)" | |
155 | line 413, "pan.___", state 369, "(1)" | |
156 | line 418, "pan.___", state 386, "(1)" | |
157 | line 399, "pan.___", state 405, "(1)" | |
158 | line 403, "pan.___", state 417, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
159 | line 408, "pan.___", state 435, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
160 | line 413, "pan.___", state 461, "(1)" | |
161 | line 418, "pan.___", state 478, "(1)" | |
162 | line 403, "pan.___", state 510, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
163 | line 408, "pan.___", state 528, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
164 | line 413, "pan.___", state 554, "(1)" | |
165 | line 418, "pan.___", state 571, "(1)" | |
166 | line 164, "pan.___", state 594, "(1)" | |
167 | line 168, "pan.___", state 606, "(1)" | |
168 | line 160, "pan.___", state 618, "(1)" | |
169 | line 168, "pan.___", state 638, "(1)" | |
170 | line 164, "pan.___", state 662, "(1)" | |
171 | line 168, "pan.___", state 674, "(1)" | |
172 | line 399, "pan.___", state 696, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
173 | line 399, "pan.___", state 698, "(1)" | |
174 | line 399, "pan.___", state 699, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid)))" | |
175 | line 399, "pan.___", state 699, "else" | |
176 | line 399, "pan.___", state 702, "(1)" | |
177 | line 403, "pan.___", state 710, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
178 | line 403, "pan.___", state 712, "(1)" | |
179 | line 403, "pan.___", state 713, "((cache_dirty_urcu_active_readers.bitfield&(1<<_pid)))" | |
180 | line 403, "pan.___", state 713, "else" | |
181 | line 403, "pan.___", state 716, "(1)" | |
182 | line 403, "pan.___", state 717, "(1)" | |
183 | line 403, "pan.___", state 717, "(1)" | |
184 | line 401, "pan.___", state 722, "((i<1))" | |
185 | line 401, "pan.___", state 722, "((i>=1))" | |
186 | line 408, "pan.___", state 728, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
187 | line 409, "pan.___", state 741, "(1)" | |
188 | line 409, "pan.___", state 742, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid))))" | |
189 | line 409, "pan.___", state 742, "else" | |
190 | line 409, "pan.___", state 745, "(1)" | |
191 | line 409, "pan.___", state 746, "(1)" | |
192 | line 409, "pan.___", state 746, "(1)" | |
193 | line 413, "pan.___", state 754, "(1)" | |
194 | line 413, "pan.___", state 755, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
195 | line 413, "pan.___", state 755, "else" | |
196 | line 413, "pan.___", state 758, "(1)" | |
197 | line 413, "pan.___", state 759, "(1)" | |
198 | line 413, "pan.___", state 759, "(1)" | |
199 | line 411, "pan.___", state 764, "((i<1))" | |
200 | line 411, "pan.___", state 764, "((i>=1))" | |
201 | line 418, "pan.___", state 771, "(1)" | |
202 | line 418, "pan.___", state 772, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
203 | line 418, "pan.___", state 772, "else" | |
204 | line 418, "pan.___", state 775, "(1)" | |
205 | line 418, "pan.___", state 776, "(1)" | |
206 | line 418, "pan.___", state 776, "(1)" | |
207 | line 420, "pan.___", state 779, "(1)" | |
208 | line 420, "pan.___", state 779, "(1)" | |
209 | line 403, "pan.___", state 810, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
210 | line 408, "pan.___", state 828, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
211 | line 413, "pan.___", state 854, "(1)" | |
212 | line 418, "pan.___", state 871, "(1)" | |
213 | line 403, "pan.___", state 900, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
214 | line 408, "pan.___", state 918, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
215 | line 413, "pan.___", state 944, "(1)" | |
216 | line 418, "pan.___", state 961, "(1)" | |
217 | line 399, "pan.___", state 980, "(1)" | |
218 | line 403, "pan.___", state 992, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
219 | line 408, "pan.___", state 1010, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
220 | line 413, "pan.___", state 1036, "(1)" | |
221 | line 418, "pan.___", state 1053, "(1)" | |
222 | line 403, "pan.___", state 1085, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
223 | line 408, "pan.___", state 1103, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
224 | line 413, "pan.___", state 1129, "(1)" | |
225 | line 418, "pan.___", state 1146, "(1)" | |
226 | line 164, "pan.___", state 1169, "(1)" | |
227 | line 168, "pan.___", state 1181, "(1)" | |
228 | line 160, "pan.___", state 1193, "(1)" | |
229 | line 168, "pan.___", state 1213, "(1)" | |
230 | line 164, "pan.___", state 1237, "(1)" | |
231 | line 168, "pan.___", state 1249, "(1)" | |
232 | line 399, "pan.___", state 1271, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
233 | line 399, "pan.___", state 1273, "(1)" | |
234 | line 399, "pan.___", state 1274, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid)))" | |
235 | line 399, "pan.___", state 1274, "else" | |
236 | line 399, "pan.___", state 1277, "(1)" | |
237 | line 403, "pan.___", state 1285, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
238 | line 403, "pan.___", state 1287, "(1)" | |
239 | line 403, "pan.___", state 1288, "((cache_dirty_urcu_active_readers.bitfield&(1<<_pid)))" | |
240 | line 403, "pan.___", state 1288, "else" | |
241 | line 403, "pan.___", state 1291, "(1)" | |
242 | line 403, "pan.___", state 1292, "(1)" | |
243 | line 403, "pan.___", state 1292, "(1)" | |
244 | line 401, "pan.___", state 1297, "((i<1))" | |
245 | line 401, "pan.___", state 1297, "((i>=1))" | |
246 | line 408, "pan.___", state 1303, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
247 | line 409, "pan.___", state 1316, "(1)" | |
248 | line 409, "pan.___", state 1317, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid))))" | |
249 | line 409, "pan.___", state 1317, "else" | |
250 | line 409, "pan.___", state 1320, "(1)" | |
251 | line 409, "pan.___", state 1321, "(1)" | |
252 | line 409, "pan.___", state 1321, "(1)" | |
253 | line 413, "pan.___", state 1329, "(1)" | |
254 | line 413, "pan.___", state 1330, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
255 | line 413, "pan.___", state 1330, "else" | |
256 | line 413, "pan.___", state 1333, "(1)" | |
257 | line 413, "pan.___", state 1334, "(1)" | |
258 | line 413, "pan.___", state 1334, "(1)" | |
259 | line 411, "pan.___", state 1339, "((i<1))" | |
260 | line 411, "pan.___", state 1339, "((i>=1))" | |
261 | line 418, "pan.___", state 1346, "(1)" | |
262 | line 418, "pan.___", state 1347, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
263 | line 418, "pan.___", state 1347, "else" | |
264 | line 418, "pan.___", state 1350, "(1)" | |
265 | line 418, "pan.___", state 1351, "(1)" | |
266 | line 418, "pan.___", state 1351, "(1)" | |
267 | line 420, "pan.___", state 1354, "(1)" | |
268 | line 420, "pan.___", state 1354, "(1)" | |
269 | line 164, "pan.___", state 1379, "(1)" | |
270 | line 168, "pan.___", state 1391, "(1)" | |
271 | line 160, "pan.___", state 1403, "(1)" | |
272 | line 168, "pan.___", state 1423, "(1)" | |
273 | line 164, "pan.___", state 1447, "(1)" | |
274 | line 168, "pan.___", state 1459, "(1)" | |
275 | line 702, "pan.___", state 1484, "-end-" | |
276 | (160 of 1484 states) | |
277 | unreached in proctype :init: | |
278 | line 709, "pan.___", state 9, "((j<2))" | |
279 | line 709, "pan.___", state 9, "((j>=2))" | |
280 | line 710, "pan.___", state 20, "((j<2))" | |
281 | line 710, "pan.___", state 20, "((j>=2))" | |
282 | line 715, "pan.___", state 33, "((j<2))" | |
283 | line 715, "pan.___", state 33, "((j>=2))" | |
284 | (3 of 46 states) | |
285 | unreached in proctype :never: | |
286 | line 749, "pan.___", state 8, "-end-" | |
287 | (1 of 8 states) | |
288 | ||
289 | pan: elapsed time 2.96 seconds | |
290 | pan: rate 124050.34 states/second | |
291 | pan: avg transition delay 7.7921e-07 usec | |
292 | cp .input.spin urcu_free_no_wmb.spin.input | |
293 | cp .input.spin.trail urcu_free_no_wmb.spin.input.trail | |
294 | make[1]: Leaving directory `/home/compudj/doc/userspace-rcu/formal-model/urcu' |