avadhpatel / marss

PTLsim and QEMU based Computer Architecture Research Simulator
http://www.marss86.org
129 stars 63 forks source link

ptlsim/qemu: Disable compiler optimizations #73

Open tj90241 opened 2 years ago

tj90241 commented 2 years ago

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