Skip to content

ptlsim/qemu: Disable compiler optimizations#73

Open
tj90241 wants to merge 1 commit intoavadhpatel:masterfrom
tj90241:disable-opts
Open

ptlsim/qemu: Disable compiler optimizations#73
tj90241 wants to merge 1 commit intoavadhpatel:masterfrom
tj90241:disable-opts

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 stachecki.tyler@gmail.com

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 <stachecki.tyler@gmail.com>
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