-
Notifications
You must be signed in to change notification settings - Fork 570
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
drcachesim offline simulation does not properly combine multiple processes #2384
Comments
The extra checks fail on the multiproc test so we fix that here for online by adding a fork event handler that sends a new header to the simulator. We partially solve #2384 by creating a new offline dir and files but more work is needed to merge the final traces in the added test here: that's left for #2384.
Fixes two issues with offline traces (#1729): first, changes the reader to not assume a separate tid header right after the initial tid,pid header, as offline traces (as opposed to online) do not contain it. Second, changes raw2trace to not emit a superfluous tid entry of 0 just prior to the real initial tid entry for each thread. Adds asserts to catch related errors in the future in the test suite. The extra checks failed on the multiproc test so we fix that here for online by adding a fork event handler that sends a new header to the simulator. We partially solve #2384 by creating a new offline dir and files but more work is needed to merge the final traces in the added test here: that's left for #2384.
Pasting from my notes: *** TODO need separate subdir per process b/c of modules.log, so painful to add test Should allow multiple -indir options. But that brings up complications:
For now I just have a test of the output from one process. |
#3059 covers adding non-space separator support to droption |
To summarize the current status, the generation of offline files works fine (they go to separate dirs, courtesy of the commits referenced above), but trying to merge them back together to pass to the simulator for a single multi-process simulation is not yet supported. |
Note that the scheduler supports mixing multiple processes (as separate Status today of multiple address space support:
We might want to add some flag to shift addresses (but at a point where the |
It looks like we never made a test for a multi-process offline simulation. Looking at the code, the files are closed on fork, but there's no fork init event to open a new one, so I would expect a failure on writing out the child's trace.
The text was updated successfully, but these errors were encountered: