2012-08-06 14:17:04 UTC
A bit more detail on the mysterious pc-simple-timing that passes in zizzer but fails on a whole range of other systems. It turns out the zizzer stats generated in the test run are wrong(!)
Here's how I found this out:
1) Added a flag where the stat is incremented (num_mem_refs and store_insts in src/cpu/simple/base.cc)
2) Dumped on two systems with the stats .value() printed with a dedicated flag
3) Compared the traces, and they match! This is where my head started to spin... :)
4) Ran the pc-simple-timing manually on zizzer with the command found in the simout and guess what: the stats are the same as on the other systems!
5) Tried running the regression again with scons -j1 to avoid any odd race conditions, but the stats that come out that way are off, suggesting the last instruction (or at least memory access) has simply not happened yet the moment the stats are dumped. Odd to say the least.
I have massaged the tests/SConscript to not use scons Execute command, but instead subprocess.call, and with this change the regressions on zizzer also fail.
In conclusion, either scons or gem5 is doing something odd here. Any scons ninja out there that has any idea? I tried adding a sleep of 10 s before and after, but that does not seem to help. Could it be related to some bug in drain?
Perhaps we can bump the scons version on zizzer just in case?
-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.