Skip to content

Add a new xtune suboption, xtune:footprint - #23543

Merged
mpirvu merged 1 commit into
eclipse-openj9:masterfrom
KavinSatheeskumar:xtune-footprint
May 13, 2026
Merged

Add a new xtune suboption, xtune:footprint#23543
mpirvu merged 1 commit into
eclipse-openj9:masterfrom
KavinSatheeskumar:xtune-footprint

Conversation

@KavinSatheeskumar

@KavinSatheeskumar KavinSatheeskumar commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Add a new xtune sub option, xtune:footprint which tweaks compiler settings to optimize for footprint reduction.

Addresses this issue

#23537

@mpirvu mpirvu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Over-arching comment: I don't think we should mix footprint with aggressiveness levels. The aggressiveness here refers to how aggressive the JIT compiler is in improving throughput.

Comment thread runtime/vm/jvminit.c Outdated
Comment thread runtime/vm/jvminit.c Outdated
Comment thread runtime/vm/jvminit.c Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
@mpirvu mpirvu self-assigned this Mar 18, 2026
@mpirvu mpirvu added comp:jit comp:vm depends:omr Pull request is dependent on a corresponding change in OMR labels Mar 18, 2026

@mpirvu mpirvu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Implemented changes look good to me.
Have you thought how to connect J9_RUNTIME_TUNE_FOOTPRINT to the heuristics? Are heuristics going to access vm->runtimeFlags directly? What if we need omr to know about J9_RUNTIME_TUNE_FOOTPRINT? What happens during CRIU restore?

Comment thread runtime/vm/jvminit.c
@mpirvu mpirvu removed the depends:omr Pull request is dependent on a corresponding change in OMR label Mar 18, 2026
@KavinSatheeskumar
KavinSatheeskumar force-pushed the xtune-footprint branch 3 times, most recently from a45639b to 4998d34 Compare March 20, 2026 19:49
Comment thread runtime/gc_modron_startup/mminit.cpp Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
Comment thread runtime/oti/j9nonbuilder.h Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
@KavinSatheeskumar
KavinSatheeskumar force-pushed the xtune-footprint branch 3 times, most recently from 899d366 to 4f1f8a8 Compare March 24, 2026 14:47
Comment thread runtime/oti/j9nonbuilder.h Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
Comment thread runtime/compiler/control/J9Options.cpp Outdated
@KavinSatheeskumar
KavinSatheeskumar force-pushed the xtune-footprint branch 6 times, most recently from 2b80d7b to 30555af Compare April 14, 2026 03:15
@KavinSatheeskumar
KavinSatheeskumar force-pushed the xtune-footprint branch 4 times, most recently from 25eac81 to d579f42 Compare April 21, 2026 13:59
@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

I was looking into adding CRIU support for this option. However, it seems like none of the options -Xtune: have CRIU support. I was wondering if we should add it in this PR, or have a separate PR which adds all of them?

@mpirvu mpirvu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@mpirvu

mpirvu commented May 2, 2026

Copy link
Copy Markdown
Contributor

jenkins compile all jdk26

@mpirvu

mpirvu commented May 4, 2026

Copy link
Copy Markdown
Contributor

jenkins test sanity all jdk26

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.openjdk_x86-64_windows_Personal

  • Failure appears to be caused by an I/O Exception
java.nio.file.AccessDeniedException: C:\Users\jenkins\workspace\Test_openjdk26_j9_sanity.openjdk_x86-64_windows_Personal@tmp\durable-76972f2b\jenkins-log.txt

https://openj9-jenkins.osuosl.org/job/Test_openjdk26_j9_sanity.openjdk_x86-64_linux_Personal/3/

Test_openjdk26_j9_sanity.openjdk_ppc64_aix_Personal

  • Appears to be a timeout error
[2026-05-05T07:44:03.147Z] Cancelling nested steps due to timeout
[2026-05-05T07:44:03.166Z] Sending interrupt signal to process

Test_openjdk26_j9_sanity.functional_ppc64_aix_Personal

Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using 'unix:0' as the value of the DISPLAY variable.

All of these appear to be unrelated to the change in this pull request

@mpirvu mpirvu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@mpirvu

mpirvu commented May 12, 2026

Copy link
Copy Markdown
Contributor

jenkins test sanity.functional all jdk26

@KavinSatheeskumar

KavinSatheeskumar commented May 12, 2026

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_x86-64_linux_Personal

  • failed due to the following known infra issues

test list 0, 2, 3, 5

13:21:07  Exception: groovy.lang.MissingMethodException: No signature of method: org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.addSummary() is applicable for argument types: (java.lang.String) values: [accept.svg]

1,4

[2026-05-12T16:50:53.910Z] Exception: hudson.AbortException: Failed to run ssh-agent -k

Aside from the infra failure, tests 0, 2, 3 and 5 all passed and was incorrectly marked as failed. Tests 1 and 4 did not run.

@KavinSatheeskumar

KavinSatheeskumar commented May 12, 2026

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_x86-64_windows_Personal

  • failed due to the following known infra issue

0, 2, 3, 5

[2026-05-12T17:21:07.147Z] Exception: groovy.lang.MissingMethodException: No signature of method: org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.addSummary() is applicable for argument types: (java.lang.String) values: [accept.svg]
[2026-05-12T17:21:07.147Z] Possible solutions: createSummary(java.lang.String)

1, 4

[2026-05-12T16:50:53.910Z] Exception: hudson.AbortException: Failed to run ssh-agent -k

Aside from the infra failure, tests 0, 2, 3 and 5 all passed and was incorrectly marked as failed. Tests 1 and 4 did not run.

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_s390x_linux_Personal

  • failed due to the following known infra issue

0, 1, 2

[2026-05-12T16:08:36.791Z] Exception: groovy.lang.MissingMethodException: No signature of method: org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.addSummary() is applicable for argument types: (java.lang.String) values: [accept.svg]
[2026-05-12T16:08:36.791Z] Possible solutions: createSummary(java.lang.String)

All three tests ran successfully, and were incorrectly marked as failing

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_ppc64le_linux_Personal

  • failed due to the following known infra issue
groovy.lang.MissingPropertyException: No such property: parallelTestParams for class: groovy.lang.Binding

These tests did not run

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_ppc64_aix_Personal

  • these tests failed due to known infra issues

0, 1, 2

[2026-05-12T19:23:00.970Z] Exception: groovy.lang.MissingMethodException: No signature of method: org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.addSummary() is applicable for argument types: (java.lang.String) values: [accept.svg]
[2026-05-12T19:23:00.970Z] Possible solutions: createSummary(java.lang.String)

All these tests passed, but were incorrectly marked as failing

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_aarch64_mac_Personal

  • failed due to known infra issues

0, 1

[2026-05-12T15:35:09.616Z] Exception: groovy.lang.MissingMethodException: No signature of method: org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager.addSummary() is applicable for argument types: (java.lang.String) values: [accept.svg]
[2026-05-12T15:35:09.617Z] Possible solutions: createSummary(java.lang.String)

All tests ran successfully, and were incorrectly marked as failing

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Test_openjdk26_j9_sanity.functional_aarch64_linux_Personal

  • failed due to known infra issue
groovy.lang.MissingPropertyException: No such property: parallelTestParams for class: groovy.lang.Binding

none of these tests ran

@KavinSatheeskumar

Copy link
Copy Markdown
Contributor Author

Build_JDK26_x86-64_mac_Personal

  • failed due to known infra issue
java.io.FileNotFoundException: /var/lib/jenkins/jobs/Build_JDK26_x86-64_mac_Personal/builds/11/program.dat (No such file or directory)

build failed due to an issue on the build machine, and not the code

@mpirvu

mpirvu commented May 13, 2026

Copy link
Copy Markdown
Contributor

jenkins test sanity.functional xlinux jdk26

@mpirvu

mpirvu commented May 13, 2026

Copy link
Copy Markdown
Contributor

The test on xlinux passed. The other failed due to infra issues. Given this and the fact that the new is protected by the newly created option, this PR is ready to be merged.

@mpirvu
mpirvu merged commit d869913 into eclipse-openj9:master May 13, 2026
12 of 19 checks passed
Comment on lines +126 to +140
double scaleFactor = 1;
bool xtune_footprint = javaVM->runtimeFlags & J9_RUNTIME_TUNE_FOOTPRINT;
if (xtune_footprint) {
scaleFactor = 4;
} else {
#if defined(J9VM_OPT_CRIU_SUPPORT)
if (javaVM->internalVMFunctions->isCRaCorCRIUSupportEnabled(javaVM)) {
scaleFactor = 2;
}
#endif
}
if (!_extensions->dnssExpectedRatioMaximum._wasSpecified &&
!_extensions->dnssExpectedRatioMinimum._wasSpecified) {
_extensions->dnssExpectedRatioMaximum._valueSpecified *= scaleFactor;
_extensions->dnssExpectedRatioMinimum._valueSpecified *= scaleFactor;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please create a follow-up change to indent consistently (with tabs instead of spaces).

@KavinSatheeskumar KavinSatheeskumar May 14, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Hello, this PR should do that, #23908

KavinSatheeskumar added a commit to KavinSatheeskumar/openj9 that referenced this pull request May 14, 2026
Pull request eclipse-openj9#23543 used spaces where it should have used tabs in the
file runtime/gc_glue_java/ConfigurationDelegate.hpp. This
pull request fixes it.

eclipse-openj9#23543
KavinSatheeskumar added a commit to KavinSatheeskumar/openj9 that referenced this pull request May 14, 2026
Pull request eclipse-openj9#23543 used spaces where it should have used tabs in the
file runtime/gc_glue_java/ConfigurationDelegate.hpp. This
pull request fixes it.

eclipse-openj9#23543
dev-koan pushed a commit to dev-koan/openj9 that referenced this pull request May 27, 2026
Pull request eclipse-openj9#23543 used spaces where it should have used tabs in the
file runtime/gc_glue_java/ConfigurationDelegate.hpp. This
pull request fixes it.

eclipse-openj9#23543
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants