Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC gets the addresses of variables it needs from the network (not dwarf)
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 14 Mar 2021 18:23:10 +0000 (19:23 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 14 Mar 2021 20:05:02 +0000 (21:05 +0100)
commit78a473edeca3dbc88eccbd5d882ac0494dce2360
tree6253c5a1607dec682c133f4f230bf4bad43e80e1
parent968234160cc483b6ffab7980d39224ec51225c94
MC gets the addresses of variables it needs from the network (not dwarf)

This way, Dwarf info are only loaded when they are really needed (ie,
when state equality is used or for liveness properties).

Running all MC tests goes from about 70 seconds down to 10 seconds
(there is a liveness test that lasts 10 seconds). The MC tests that do
not need dwarf go from 6 or 8 seconds down to half a second.

I'm not 100% sure, but this commit may introduce a race condition when
SMPI is used with dlopen privatization. The binary is sometimes
removed from disk too early for MC to pick the dwarf informations it
needs. I saw it some times while implementing it and now it seems to
be gone although I did not explicitely fix it. This seem to be tested
by mc-umpire-comm-dup-no-free2 so I'm not sure.
12 files changed:
include/simgrid/simix.hpp
src/kernel/actor/ActorImpl.cpp
src/kernel/actor/ActorImpl.hpp
src/mc/ModelChecker.cpp
src/mc/remote/AppSide.cpp
src/mc/remote/RemoteProcess.cpp
src/mc/remote/RemoteProcess.hpp
src/mc/remote/mc_protocol.h
src/mc/sosp/Snapshot_test.cpp
src/simix/smx_global.cpp
teshsuite/mc/dwarf-expression/dwarf-expression.cpp
teshsuite/mc/dwarf/dwarf.cpp