-
Notifications
You must be signed in to change notification settings - Fork 379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should have option to report progress #910
Comments
SIMD works on stable since 1.27 using Edit: saw https://github.com/ralfbiedert/ffsvm-rust, which I think you are refering to. It indeed uses
That would be equivalent to solving the halting problem. Even a very rough aproximation would be hard to give.
Maybe try to find the exact failing test using nornal execution first, and then run only that test in miri using
👍 |
Yes,
I already disabled every other unit test. It's only trying to run the one that has issues.
Yeah, sorry, the joke got a bit lost on that one :)
Yes, this is sort of what we are doing already. It's somewhat deep down the call stack and it's doing lots of math. I would love to isolate it more but was unsuccessful so far triggering the bug. |
Have you tried santizers like valgrind, asan, ubsan, ...? Those have a lot less overhead than miri. |
This is totally doable and fairly easy to implement. Essentially cause a report in https://github.com/rust-lang/miri/blob/master/src/machine.rs#L265 if enough time has passed (needs a new variable for time measurements in the evaluator ( Line 78 in bfd6181
|
If you put in a joke without any indication that it is one, don't expect people to see your wink.
Or maybe every n-th step, print the topmost N functions on the stack, or so. Yeah, that seems reasonable. |
Background
We have a larger code base in which we combine a number of 'safe' dependencies. After adding another crate we now get a very reproducible
SIGILL
across different platforms and Rust nightly versions (nightly is mandated by another dependency b/c SIMD). Our code is#[deny(unsafe_code)]
, but some of our dependencies unfortunately juggle with it.The bug is very easy to reproduce in our project, but I was, so far, unsuccessful isolating it.
At this point I turned to
miri
for help.Problem
Running our test case via
cargo miri test
on my machine runs for 1h+ and takes up all the 32GB RAM I have. It then proceeds to use swap space, making the machine practically unusable.I wouldn't mind that, if there were some indication of progress that allowed me to
Providing an indication if the evaluation will ever halt, and printing an ETA, would be my preferred solution. Alternatively, maybe an option (
--verbose
?) to print regular "status updates", execution stack traces ("I'm currently runningmain() -> g()
), ... could also be helpful.The text was updated successfully, but these errors were encountered: