Skip to content
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

ptlsim/qemu: Disable compiler optimizations #73

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tj90241
Copy link
Contributor

@tj90241 tj90241 commented Feb 12, 2022

This is unfortunate, but after obtaining the default,
official MARSS image and running the FFT simulation with
./start_sim and ./stop_sim, it seems broken. It errors
out with:

Switching to simulation
ptlsim_ptlcall_init: mapped PTLcall MMIO page at phys 0x8fffff000, virt
0x7f9520458000
PTLCALL type PTLCALL_ENQUEUE
MARSSx86::Command received : -run
Warning: only one action (from -run, -stop, -kill) can be specified at
once

I'm running Debian Bullseye (stable) with the default GCC
and build tools shipped with it, so nothing fancy here.

Knowing that ptlsim, has a lot of reliance on undefined
behavior throughout its codebase, I disabled compiler
optimizations and everything began working as expected
again.

There's practical ways to fuzz for what's breaking things
here, but this was a rather obvious error. There could also
be subtle ones that invalidate or produce poor/bad/fake
simulation results. Until uses of undefined behavior are
squashed or at least somewhat fuzzed for, disable compiler
optimizations to prevent surprises.

Signed-off-by: Tyler J. Stachecki [email protected]

This is unfortunate, but after obtaining the default,
official MARSS image and running the FFT simulation with
./start_sim and ./stop_sim, it seems broken. It errors
out with:

```
Switching to simulation
ptlsim_ptlcall_init: mapped PTLcall MMIO page at phys 0x8fffff000, virt
0x7f9520458000
PTLCALL type PTLCALL_ENQUEUE
MARSSx86::Command received : -run
Warning: only one action (from -run, -stop, -kill) can be specified at
once
```

I'm running Debian Bullseye (stable) with the default GCC
and build tools shipped with it, so nothing fancy here.

Knowing that `ptlsim`, has a lot of reliance on undefined
behavior throughout its codebase, I disabled compiler
optimizations and everything began working as expected
again.

There's practical ways to fuzz for what's breaking things
here, but this was a rather obvious error. There could also
be subtle ones that invalidate or produce poor/bad/fake
simulation results. Until uses of undefined behavior are
squashed or at least somewhat fuzzed for, disable compiler
optimizations to prevent surprises.

Signed-off-by: Tyler J. Stachecki <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant