-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
executor: tune timeouts based on VM/OS/arch/etc #1552
Comments
This patch helped enabled me to run arm64 tests with x86 host and arm64 qemu.
|
Also I think it is forth mention that at least in our set we had annoying issue with very slow sshd start up time with arm64 qemu running on x86. It turned out that reason was low entropy and it was easily "fixed" with installing haveged. It can be found from the buildroot -> make menuconfig
|
I've added this note into the instructions. Thanks! |
FTR, also "executor not serving" and "no output" errors for arm64 emulation are mentioned here: |
FTR: one other example of a slower configuration is gvisor+race+cover. Slowdown for Go race+cover seems to be insanely huge. For all other combinations of coverage/race mmap syscall takes ~1-2ms, but for race+coverage it takes ~350ms. I guess this is because the code is sprinkled with atomic increments which become super expensive under race detector. |
I think this can be considered fixed: syzkaller/sys/targets/targets.go Lines 83 to 114 in 65a7a85
|
We have a number of timeouts hardcoded though out the codebase, most of them were tuned for Linux/amd64/KVM (fast native execution). However, we have a number of contexts where timings can be significantly different, e.g. running in qemu with emulation makes everything 10x slower, or other OSes may need a different per-syscall/program timeout (we can't simply increase them as they significantly affect fuzzing performance).
What would be nice to have is some kind of flexible mechanism that would allow to tune these timeouts through out the codebase based on OS/arch/VM/etc. Perhaps rooted in sys/targets as we have a number of such global parameters there already.
List of timeouts:
The text was updated successfully, but these errors were encountered: