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_rmb.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 | Depth= 5439 States= 1e+06 Transitions= 1.03e+07 Memory= 527.190 t= 8.16 R= 1e+05 | |
20 | pan: claim violated! (at depth 1801) | |
21 | pan: wrote .input.spin.trail | |
22 | ||
23 | (Spin Version 5.1.7 -- 23 December 2008) | |
24 | Warning: Search not completed | |
25 | + Partial Order Reduction | |
26 | ||
27 | Full statespace search for: | |
28 | never claim + | |
29 | assertion violations + (if within scope of claim) | |
30 | acceptance cycles + (fairness disabled) | |
31 | invalid end states - (disabled by never claim) | |
32 | ||
33 | State-vector 56 byte, depth reached 5439, errors: 1 | |
34 | 1006552 states, stored | |
35 | 9396280 states, matched | |
36 | 10402832 transitions (= stored+matched) | |
37 | 36844262 atomic steps | |
38 | hash conflicts: 1832712 (resolved) | |
39 | ||
40 | Stats on memory usage (in Megabytes): | |
41 | 80.634 equivalent memory usage for states (stored*(State-vector + overhead)) | |
42 | 61.871 actual memory usage for states (compression: 76.73%) | |
43 | state-vector as stored = 36 byte + 28 byte overhead | |
44 | 8.000 memory used for hash table (-w20) | |
45 | 457.764 memory used for DFS stack (-m10000000) | |
46 | 527.580 total actual memory usage | |
47 | ||
48 | unreached in proctype urcu_reader | |
49 | line 399, "pan.___", state 16, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
50 | line 408, "pan.___", state 48, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
51 | line 409, "pan.___", state 61, "(1)" | |
52 | line 418, "pan.___", state 91, "(1)" | |
53 | line 399, "pan.___", state 106, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
54 | line 408, "pan.___", state 138, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
55 | line 409, "pan.___", state 151, "(1)" | |
56 | line 418, "pan.___", state 181, "(1)" | |
57 | line 399, "pan.___", state 197, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
58 | line 408, "pan.___", state 229, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
59 | line 409, "pan.___", state 242, "(1)" | |
60 | line 418, "pan.___", state 272, "(1)" | |
61 | line 399, "pan.___", state 315, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
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 | (17 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 409, "pan.___", state 153, "(1)" | |
109 | line 413, "pan.___", state 166, "(1)" | |
110 | line 420, "pan.___", state 191, "(1)" | |
111 | line 420, "pan.___", state 191, "(1)" | |
112 | line 652, "pan.___", state 199, "(1)" | |
113 | line 175, "pan.___", state 208, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
114 | line 179, "pan.___", state 217, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
115 | line 175, "pan.___", state 243, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<i)))" | |
116 | line 183, "pan.___", state 265, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<i)))" | |
117 | line 175, "pan.___", state 282, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
118 | line 179, "pan.___", state 291, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
119 | line 183, "pan.___", state 304, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
120 | line 399, "pan.___", state 320, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
121 | line 403, "pan.___", state 334, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
122 | line 408, "pan.___", state 352, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
123 | line 409, "pan.___", state 365, "(1)" | |
124 | line 413, "pan.___", state 378, "(1)" | |
125 | line 418, "pan.___", state 395, "(1)" | |
126 | line 399, "pan.___", state 414, "(1)" | |
127 | line 403, "pan.___", state 426, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
128 | line 408, "pan.___", state 444, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
129 | line 413, "pan.___", state 470, "(1)" | |
130 | line 418, "pan.___", state 487, "(1)" | |
131 | line 403, "pan.___", state 519, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
132 | line 408, "pan.___", state 537, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
133 | line 413, "pan.___", state 563, "(1)" | |
134 | line 418, "pan.___", state 580, "(1)" | |
135 | line 179, "pan.___", state 603, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
136 | line 183, "pan.___", state 616, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
137 | line 175, "pan.___", state 629, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<i)))" | |
138 | line 183, "pan.___", state 651, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<i)))" | |
139 | line 175, "pan.___", state 668, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
140 | line 179, "pan.___", state 677, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
141 | line 183, "pan.___", state 690, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
142 | line 399, "pan.___", state 714, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
143 | line 399, "pan.___", state 716, "(1)" | |
144 | line 399, "pan.___", state 717, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid)))" | |
145 | line 399, "pan.___", state 717, "else" | |
146 | line 399, "pan.___", state 720, "(1)" | |
147 | line 403, "pan.___", state 728, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
148 | line 403, "pan.___", state 730, "(1)" | |
149 | line 403, "pan.___", state 731, "((cache_dirty_urcu_active_readers.bitfield&(1<<_pid)))" | |
150 | line 403, "pan.___", state 731, "else" | |
151 | line 403, "pan.___", state 734, "(1)" | |
152 | line 403, "pan.___", state 735, "(1)" | |
153 | line 403, "pan.___", state 735, "(1)" | |
154 | line 401, "pan.___", state 740, "((i<1))" | |
155 | line 401, "pan.___", state 740, "((i>=1))" | |
156 | line 408, "pan.___", state 746, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
157 | line 409, "pan.___", state 759, "(1)" | |
158 | line 409, "pan.___", state 760, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid))))" | |
159 | line 409, "pan.___", state 760, "else" | |
160 | line 409, "pan.___", state 763, "(1)" | |
161 | line 409, "pan.___", state 764, "(1)" | |
162 | line 409, "pan.___", state 764, "(1)" | |
163 | line 413, "pan.___", state 772, "(1)" | |
164 | line 413, "pan.___", state 773, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
165 | line 413, "pan.___", state 773, "else" | |
166 | line 413, "pan.___", state 776, "(1)" | |
167 | line 413, "pan.___", state 777, "(1)" | |
168 | line 413, "pan.___", state 777, "(1)" | |
169 | line 411, "pan.___", state 782, "((i<1))" | |
170 | line 411, "pan.___", state 782, "((i>=1))" | |
171 | line 418, "pan.___", state 789, "(1)" | |
172 | line 418, "pan.___", state 790, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
173 | line 418, "pan.___", state 790, "else" | |
174 | line 418, "pan.___", state 793, "(1)" | |
175 | line 418, "pan.___", state 794, "(1)" | |
176 | line 418, "pan.___", state 794, "(1)" | |
177 | line 420, "pan.___", state 797, "(1)" | |
178 | line 420, "pan.___", state 797, "(1)" | |
179 | line 403, "pan.___", state 828, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
180 | line 408, "pan.___", state 846, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
181 | line 413, "pan.___", state 872, "(1)" | |
182 | line 418, "pan.___", state 889, "(1)" | |
183 | line 403, "pan.___", state 918, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
184 | line 408, "pan.___", state 936, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
185 | line 413, "pan.___", state 962, "(1)" | |
186 | line 418, "pan.___", state 979, "(1)" | |
187 | line 399, "pan.___", state 998, "(1)" | |
188 | line 403, "pan.___", state 1010, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
189 | line 408, "pan.___", state 1028, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
190 | line 413, "pan.___", state 1054, "(1)" | |
191 | line 418, "pan.___", state 1071, "(1)" | |
192 | line 403, "pan.___", state 1103, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
193 | line 408, "pan.___", state 1121, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
194 | line 413, "pan.___", state 1147, "(1)" | |
195 | line 418, "pan.___", state 1164, "(1)" | |
196 | line 179, "pan.___", state 1187, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
197 | line 183, "pan.___", state 1200, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
198 | line 175, "pan.___", state 1213, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<i)))" | |
199 | line 183, "pan.___", state 1235, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<i)))" | |
200 | line 175, "pan.___", state 1252, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
201 | line 179, "pan.___", state 1261, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
202 | line 183, "pan.___", state 1274, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
203 | line 399, "pan.___", state 1298, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
204 | line 399, "pan.___", state 1300, "(1)" | |
205 | line 399, "pan.___", state 1301, "((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid)))" | |
206 | line 399, "pan.___", state 1301, "else" | |
207 | line 399, "pan.___", state 1304, "(1)" | |
208 | line 403, "pan.___", state 1312, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
209 | line 403, "pan.___", state 1314, "(1)" | |
210 | line 403, "pan.___", state 1315, "((cache_dirty_urcu_active_readers.bitfield&(1<<_pid)))" | |
211 | line 403, "pan.___", state 1315, "else" | |
212 | line 403, "pan.___", state 1318, "(1)" | |
213 | line 403, "pan.___", state 1319, "(1)" | |
214 | line 403, "pan.___", state 1319, "(1)" | |
215 | line 401, "pan.___", state 1324, "((i<1))" | |
216 | line 401, "pan.___", state 1324, "((i>=1))" | |
217 | line 408, "pan.___", state 1330, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
218 | line 409, "pan.___", state 1343, "(1)" | |
219 | line 409, "pan.___", state 1344, "(!((cache_dirty_urcu_gp_ctr.bitfield&(1<<_pid))))" | |
220 | line 409, "pan.___", state 1344, "else" | |
221 | line 409, "pan.___", state 1347, "(1)" | |
222 | line 409, "pan.___", state 1348, "(1)" | |
223 | line 409, "pan.___", state 1348, "(1)" | |
224 | line 413, "pan.___", state 1356, "(1)" | |
225 | line 413, "pan.___", state 1357, "(!((cache_dirty_urcu_active_readers.bitfield&(1<<_pid))))" | |
226 | line 413, "pan.___", state 1357, "else" | |
227 | line 413, "pan.___", state 1360, "(1)" | |
228 | line 413, "pan.___", state 1361, "(1)" | |
229 | line 413, "pan.___", state 1361, "(1)" | |
230 | line 411, "pan.___", state 1366, "((i<1))" | |
231 | line 411, "pan.___", state 1366, "((i>=1))" | |
232 | line 418, "pan.___", state 1373, "(1)" | |
233 | line 418, "pan.___", state 1374, "(!((cache_dirty_generation_ptr.bitfield&(1<<_pid))))" | |
234 | line 418, "pan.___", state 1374, "else" | |
235 | line 418, "pan.___", state 1377, "(1)" | |
236 | line 418, "pan.___", state 1378, "(1)" | |
237 | line 418, "pan.___", state 1378, "(1)" | |
238 | line 420, "pan.___", state 1381, "(1)" | |
239 | line 420, "pan.___", state 1381, "(1)" | |
240 | line 179, "pan.___", state 1406, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
241 | line 183, "pan.___", state 1419, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
242 | line 175, "pan.___", state 1432, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<i)))" | |
243 | line 183, "pan.___", state 1454, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<i)))" | |
244 | line 175, "pan.___", state 1471, "cache_dirty_urcu_gp_ctr.bitfield = (cache_dirty_urcu_gp_ctr.bitfield&~((1<<_pid)))" | |
245 | line 179, "pan.___", state 1480, "cache_dirty_urcu_active_readers.bitfield = (cache_dirty_urcu_active_readers.bitfield&~((1<<_pid)))" | |
246 | line 183, "pan.___", state 1493, "cache_dirty_generation_ptr.bitfield = (cache_dirty_generation_ptr.bitfield&~((1<<_pid)))" | |
247 | line 702, "pan.___", state 1520, "-end-" | |
248 | (144 of 1520 states) | |
249 | unreached in proctype :init: | |
250 | line 709, "pan.___", state 9, "((j<2))" | |
251 | line 709, "pan.___", state 9, "((j>=2))" | |
252 | line 710, "pan.___", state 20, "((j<2))" | |
253 | line 710, "pan.___", state 20, "((j>=2))" | |
254 | line 715, "pan.___", state 33, "((j<2))" | |
255 | line 715, "pan.___", state 33, "((j>=2))" | |
256 | (3 of 46 states) | |
257 | unreached in proctype :never: | |
258 | line 749, "pan.___", state 8, "-end-" | |
259 | (1 of 8 states) | |
260 | ||
261 | pan: elapsed time 8.24 seconds | |
262 | pan: rate 122154.37 states/second | |
263 | pan: avg transition delay 7.9209e-07 usec | |
264 | cp .input.spin urcu_free_no_rmb.spin.input | |
265 | cp .input.spin.trail urcu_free_no_rmb.spin.input.trail | |
266 | make[1]: Leaving directory `/home/compudj/doc/userspace-rcu/formal-model/urcu' |