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

Add env vars to experiment with large method heuristic #21024

Merged
merged 1 commit into from
Jan 28, 2025

Conversation

vijaysun-omr
Copy link
Contributor

@vijaysun-omr vijaysun-omr commented Jan 27, 2025

The two callers of isLargeCompiledMethod appear to be inconsistent with the "size" that gets passed in. In one case, the size is the estimated call graph size, whereas in the other case, the size is just the bytecode size. This commit changes isLargeCompiledMethod such that the thresholds to compare against are refactored out and passed in from the caller side, thus allowing different thresholds to be used from the two callers. New env vars have been introduced to do some experiments with passing in different size thresholds, though in principle, we could also vary the other thresholds being passed in at each caller.

The two callers of isLargeCompiledMethod appear to be inconsistent
with the "size" that gets passed in. In one case, the size is
the estimated call graph size, whereas in the other case, the size
is just the bytecode size. This commit changes isLargeCompiledMethod
such that the thresholds to compare against are refactored out and passed
in from the caller side, thus allowing different thresholds to be
used from the two callers. New env vars have been introduced to do some
experiments with passing in different size thresholds, though in
principle, we could also vary the other thresholds being passed in
at each caller.

Signed-off-by: Vijay Sundaresan <[email protected]>
@vijaysun-omr
Copy link
Contributor Author

fyi @mpirvu

@mpirvu mpirvu self-assigned this Jan 27, 2025
Copy link
Contributor

@mpirvu mpirvu left a comment

Choose a reason for hiding this comment

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

I there an advantage having the exemptionFreqCutoff and veryLargeCompiledMethodFaninThreshold being passed as parameters rather than being retrieved from the options inside isLargeCompiledMethod as before?

@vijaysun-omr
Copy link
Contributor Author

No advantage as things stand. I was considering leaving those values to be read from inside the routine as you suggest, but pulled them out in case we wanted to change those values at each caller as well in the future. But I can move it back inside the routine if you prefer.

Copy link
Contributor

@mpirvu mpirvu left a comment

Choose a reason for hiding this comment

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

LGTM

@mpirvu
Copy link
Contributor

mpirvu commented Jan 27, 2025

jenkins test sanity all jdk21

@vijaysun-omr vijaysun-omr changed the title WIP : Add env vars to experiment with large method heuristic Add env vars to experiment with large method heuristic Jan 27, 2025
@mpirvu
Copy link
Contributor

mpirvu commented Jan 28, 2025

There is a single failure on AIX, jdk_security2_0 timeout which has been seen before.
This PR is good to be merged.

@mpirvu mpirvu merged commit c21c8d2 into eclipse-openj9:master Jan 28, 2025
23 of 27 checks passed
@keithc-ca keithc-ca mentioned this pull request Jan 28, 2025
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