I think it might be useful to log a warning if a plugin opens a file in /proc, since most files (all?) will not be intercepted by Shadow. These files have a high likelihood of leading to non-determinism, or at least won't be correct inside the simulation. For example /proc/sys/net/ipv4/tcp_rmem, /proc/meminfo, /proc/self ,/proc/uptime, etc.
There are two issues though:
- This might be too noisy. We might need to evaluate some common programs to make sure they don't access too many things in
/proc and flood the logs.
- The
open() syscall handler (and related syscall handlers) are in C. This means that we can't use things like log_once_per_value_at_level to limit the number of log messages.
I think it might be useful to log a warning if a plugin opens a file in
/proc, since most files (all?) will not be intercepted by Shadow. These files have a high likelihood of leading to non-determinism, or at least won't be correct inside the simulation. For example/proc/sys/net/ipv4/tcp_rmem,/proc/meminfo,/proc/self,/proc/uptime, etc.There are two issues though:
/procand flood the logs.open()syscall handler (and related syscall handlers) are in C. This means that we can't use things likelog_once_per_value_at_levelto limit the number of log messages.