Fix several regressions from adoption of JSONL file format#276
Open
ebkalderon wants to merge 6 commits intoplasma-umass:masterfrom
Open
Fix several regressions from adoption of JSONL file format#276ebkalderon wants to merge 6 commits intoplasma-umass:masterfrom
ebkalderon wants to merge 6 commits intoplasma-umass:masterfrom
Conversation
It turns out that the TypeScript parser and C++ emitters are pretty inconsistent with their uses of the `-` and `_` characters for marking throughput/latency points. This seems to be the root cause of this bug: plasma-umass#215 (comment) Please note that I haven't reproduced the bug in the top-most GitHub issue description, because I don't have an affected `profile.coz` file to test against.
Going forward, `coz` will consistently emit "throughput-point" and "latency-point" in the JSONL output format. This fixes a regression accidentally introduced in this commit from last month: plasma-umass@1f62ab2 Unfortunately, now that we have JSONL-formatted profiling results using the malformed "throughput_point" and "latency_point" strings in the wild, the TypeScript `coz` viewer is probably stuck supporting both naming conventions forever (unless the maintainers are okay with breaking changes, given that `coz` bears a 0.x.y version string).
Both the `dwarf_scope` `kmeans` tests both fail on my machine due to regressions introduced the previous transition to the JSONL format. This commit fixes all those broken tests.
Apparently these were never executed in CI until now, so this commit adds a `step` for them. Hopefully it works...
f43defc to
71aa67d
Compare
Contributor
Author
|
Rebased and force-pushed to fix merge conflicts after #277 and #278 were merged. Ready for your review again, @emeryberger! |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Contributor
Author
|
Nice, looks like CI successfully passes with all CTests running! 🎉 |
Contributor
Author
|
Okay, I'm logging off for the night. Everything should be ready for review now. Feel free to reach out anytime if you have concerns/questions/feedback about the design choices, and I'll reply ASAP. Thanks! 😊 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request fixes several regressions that have gone largely unaddressed since the JSONL file format was first adopted back in PR #268. With these changes, the
coz plotviewer should now parse throughput-points and latency-points correctly and display them. 🎉On another note, it seems the existing CTest test suite has been in a semi-broken state since both #268 and #275, so I fixed those tests up and hooked them up to GitHub Actions (they seemingly haven't been executed in CI until now).
Review Notes
I would recommend reviewing these changes commit-by-commit, including the explanatory commit messages. Two friendly questions for the
cozmaintainers (elaborated on more in the commit messages):coz plotviewer bugs forprofile.jsonl, but I haven't confirmed whether this also fixes the similar-looking bugs in the legacyprofile.cozformat reported in Invalid Profile: The profile you loaded contains an invalid line: delta #215. I would love some external confirmation!cozis still in a "0.x.y" semantic versioning state, I'm personally okay with removing them, but I defer to your judgment. 😊 Please let me know, and I'd be happy to push a fast-followup commit to this branch.Thanks for your fantastic work on
cozover the years! I love the concept behind this tool, and I'm keen to use it with my own projects.Closes #206
Closes #215