-
Notifications
You must be signed in to change notification settings - Fork 729
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
Enable BCU asserts by default #7150
Enable BCU asserts by default #7150
Conversation
ece7ff7
to
a5eec58
Compare
We intentionally reduced most re-occurring tracepoints that occur during startup by setting them to level 2. Level 2 tracepoints are enabled after the JIT determines the JVM is finished the startup phase of rapidly loading classes. Although it somewhat defeats the purpose of the change, I don't expect these tracepoints can be level 1 without affecting startup time. But this can be verified with perf testing. It may also be beneficial to get the tracepoint counts with these tracepoints enabled, and see if any are extremely heavily used. We probably don't want to enable the heavily used ones at all. |
From my results I'm getting a 0.7% increase in startup time and 0.9% increase in footprint. I will collect some tracepoint counts and see how perf changes if I remove the top offenders. |
Uses of each trace statement running daytrader: If I change |
@theresa-m Is this is the only use of the |
Reran with https://github.com/eclipse/openj9/blob/9d35d06dcbf62bb83d05b93dc980e201f6aeae9e/runtime/bcutil/ROMClassBuilder.cpp#L761 as level 1 and the other Trc_BCU_Assert_True as level 3. The maxRequiredSize check is run infrequently. Results are 0.15% difference in startup -0.39% footprint difference from a baseline. edit: closing issue was accidental. reopened :) |
Something like tWAS which loads many more classes during startup may be more affected. The other possibility is to make it level 2. This won't catch problems during the startup phase, but anything loaded afterwards will be caught. There is always the option to enable the assert tracepoint(s) via the command line during startup, although typically nobody will remember to do so. |
After running twas with all Trc_BCU_Assert_True set at level 3 except the maxRequiredSize check the % difference in startup is 0.22% |
Seems fine to me, but pls write up a summary and ping Vijay to get approval. |
@vijaysun-omr after running perf comparisons with this pr I am seeing the following results: |
@theresa-m yes those regressions are within the acceptable range. |
jenkins test sanity win jdk8 |
New tracepoints need to be added at the end, to avoid changing existing tracepoint numbers. Besides affecting compatibility for formatting tracepoint files, you can see it's also caused a number of test failures. |
eb5171d
to
539466f
Compare
Signed-off-by: Theresa Mammarella <Theresa.T.Mammarella@ibm.com>
Signed-off-by: Theresa Mammarella <Theresa.T.Mammarella@ibm.com>
539466f
to
ef81bf1
Compare
jenkins test sanity win jdk8 |
jenkins test sanity,extended osx jdk8,jdk11 |
Fixes: #7143
Signed-off-by: Theresa Mammarella Theresa.T.Mammarella@ibm.com