-
Notifications
You must be signed in to change notification settings - Fork 44
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
Add segfault catcher. #1053
base: main
Are you sure you want to change the base?
Add segfault catcher. #1053
Conversation
Benchmark results Main vs HEAD.
|
Benchmarking resultsBenchmark for program
|
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
Cairo-vm (Rust, Cairo 1) |
20.890 ± 0.107 | 20.754 | 21.079 | 95.07 ± 1.70 |
cairo-native (embedded AOT) |
4.177 ± 0.041 | 4.100 | 4.240 | 19.01 ± 0.37 |
cairo-native (embedded JIT using LLVM's ORC Engine) |
3.979 ± 0.022 | 3.946 | 4.017 | 18.11 ± 0.33 |
cairo-native (standalone AOT with -march=native) |
0.220 ± 0.004 | 0.215 | 0.227 | 1.00 |
Benchmark for program dict_snapshot
Open benchmarks
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
Cairo-vm (Rust, Cairo 1) |
5.890 ± 0.035 | 5.847 | 5.954 | 2909.00 ± 144.23 |
cairo-native (embedded AOT) |
3.989 ± 0.035 | 3.932 | 4.043 | 1970.47 ± 98.52 |
cairo-native (embedded JIT using LLVM's ORC Engine) |
4.018 ± 0.036 | 3.955 | 4.060 | 1984.39 ± 99.25 |
cairo-native (standalone AOT with -march=native) |
0.002 ± 0.000 | 0.002 | 0.003 | 1.00 |
Benchmark for program factorial_2M
Open benchmarks
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
Cairo-vm (Rust, Cairo 1) |
14.614 ± 0.094 | 14.507 | 14.779 | 10.73 ± 0.10 |
cairo-native (embedded AOT) |
4.261 ± 0.026 | 4.228 | 4.303 | 3.13 ± 0.03 |
cairo-native (embedded JIT using LLVM's ORC Engine) |
4.097 ± 0.033 | 4.063 | 4.153 | 3.01 ± 0.03 |
cairo-native (standalone AOT with -march=native) |
1.363 ± 0.010 | 1.355 | 1.387 | 1.00 |
Benchmark for program fib_2M
Open benchmarks
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
Cairo-vm (Rust, Cairo 1) |
14.516 ± 0.066 | 14.403 | 14.602 | 180.17 ± 2.79 |
cairo-native (embedded AOT) |
3.785 ± 0.018 | 3.754 | 3.803 | 46.98 ± 0.73 |
cairo-native (embedded JIT using LLVM's ORC Engine) |
3.578 ± 0.045 | 3.536 | 3.667 | 44.41 ± 0.86 |
cairo-native (standalone AOT with -march=native) |
0.081 ± 0.001 | 0.080 | 0.088 | 1.00 |
Benchmark for program linear_search
Open benchmarks
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
Cairo-vm (Rust, Cairo 1) |
6.147 ± 0.055 | 6.051 | 6.227 | 3031.73 ± 77.49 |
cairo-native (embedded AOT) |
4.210 ± 0.063 | 4.128 | 4.320 | 2076.27 ± 58.68 |
cairo-native (embedded JIT using LLVM's ORC Engine) |
3.947 ± 0.063 | 3.873 | 4.055 | 1946.54 ± 55.93 |
cairo-native (standalone AOT with -march=native) |
0.002 ± 0.000 | 0.002 | 0.002 | 1.00 |
Benchmark for program logistic_map
Open benchmarks
Command | Mean [s] | Min [s] | Max [s] | Relative |
---|---|---|---|---|
Cairo-vm (Rust, Cairo 1) |
5.869 ± 0.052 | 5.803 | 5.980 | 24.20 ± 0.22 |
cairo-native (embedded AOT) |
4.160 ± 0.066 | 4.088 | 4.319 | 17.16 ± 0.27 |
cairo-native (embedded JIT using LLVM's ORC Engine) |
3.980 ± 0.029 | 3.940 | 4.015 | 16.41 ± 0.12 |
cairo-native (standalone AOT with -march=native) |
0.243 ± 0.000 | 0.242 | 0.243 | 1.00 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1053 +/- ##
==========================================
- Coverage 80.95% 80.85% -0.10%
==========================================
Files 108 109 +1
Lines 29938 30003 +65
==========================================
+ Hits 24237 24260 +23
- Misses 5701 5743 +42 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to add a test that segfaults? Or too tricky?
It is technically possible, but it'd require a way to initialize the signal handler globally when testing, potentially messing up the test harness's signal handler (ex. when using nextest). Instead, if we just initialized every (segfaulting) test then we'd end up initializing it multiple times, which could also cause problems. |
Simplified version of #959. Does not attempt to grow the stack, just catches segfaults and returns an error.
Checklist