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

Enforce that macrocompiler passes are done serially #392

Merged
merged 1 commit into from
Jan 24, 2020

Conversation

abejgonzalez
Copy link
Contributor

@abejgonzalez abejgonzalez commented Jan 23, 2020

If you look at the CI, there are multiple points where the HwachaRocketConfig fails during a MacroCompiler step with the following:

I haven't been able to replicate the error (yay non-determinism), but I theorize that this is a problem with 2 sbt runs on the same binary (e.g. MacroCompiler) running at the same time (since all our CI uses parallel make). sbt seems to only lock at the beginning when looking up things in ivy, so if MacroCompiler is getting compiled twice, it might clobber files?

This is a proposed solution by making the MacroCompiler serialized by having an order only dependency (https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html) on the harness MacroCompiler pass.

Any thoughts on this?

Copy link
Contributor

@colinschmidt colinschmidt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I think we should see leave a low priority issue open to try to address this in a better way in the future.
For large designs with lots of potential memories (or when a true compiler is present) this non-overlap could cost a reasonable amount of time.

@abejgonzalez
Copy link
Contributor Author

Added #396

@abejgonzalez abejgonzalez deleted the more-parallel-makefile-fixes branch January 24, 2020 02:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants