| 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' |