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

8289739: Add G1 specific GC breakpoints for testing #9376

Conversation

tschatzl
Copy link
Contributor

@tschatzl tschatzl commented Jul 5, 2022

Hi all,

can I have reviews for this change that adds a few G1 specific GC breakpoints for future testing JDK-8289740.

Testing: gha, local testing

Thanks,
Thomas


Progress

  • Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue

Issue

  • JDK-8289739: Add G1 specific GC breakpoints for testing

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/9376/head:pull/9376
$ git checkout pull/9376

Update a local copy of the PR:
$ git checkout pull/9376
$ git pull https://git.openjdk.org/jdk pull/9376/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 9376

View PR using the GUI difftool:
$ git pr show -t 9376

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/9376.diff

@bridgekeeper
Copy link

bridgekeeper bot commented Jul 5, 2022

👋 Welcome back tschatzl! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot changed the title 8289739: Add G1 specific GC breakpoints for testing 8289739: Add G1 specific GC breakpoints for testing Jul 5, 2022
@openjdk openjdk bot added the rfr Pull request is ready for review label Jul 5, 2022
@openjdk
Copy link

openjdk bot commented Jul 5, 2022

@tschatzl The following label will be automatically applied to this pull request:

  • hotspot

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added the hotspot hotspot-dev@openjdk.org label Jul 5, 2022
@mlbridge
Copy link

mlbridge bot commented Jul 5, 2022

Webrevs

Copy link

@kimbarrett kimbarrett left a comment

Choose a reason for hiding this comment

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

Looks good.

@openjdk
Copy link

openjdk bot commented Jul 5, 2022

@tschatzl This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8289739: Add G1 specific GC breakpoints for testing

Reviewed-by: kbarrett, iwalulya

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 8 new commits pushed to the master branch:

  • ac6be16: 8289695: [TESTBUG] TestMemoryAwareness.java fails on cgroups v2 and crun
  • 4ad18cf: 8289730: Deprecated code sample in java.lang.ClassCastException
  • d8f4e97: 8289146: containers/docker/TestMemoryWithCgroupV1.java fails on linux ppc64le machine with missing Memory and Swap Limit output
  • f783244: 8289706: (cs) Avoid redundant TreeMap.containsKey call in AbstractCharsetProvider
  • fafe8b3: 8289604: compiler/vectorapi/VectorLogicalOpIdentityTest.java failed on x86 AVX1 system
  • 3515604: 8280481: Duplicated stubs to interpreter for static calls
  • d48694d: 8283335: Add exists and readAttributesIfExists methods to FileSystemProvider
  • c45d613: 8289687: [JVMCI] bug in HotSpotResolvedJavaMethodImpl.equals

Please see this link for an up-to-date comparison between the source branch of this pull request and the master branch.
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Jul 5, 2022
@albertnetymk
Copy link
Member

It's unclear to me why "BEFORE REBUILD COMPLETED" is placed inside phase_cleanup; a more natural place to me is at the end of G1ConcurrentMarkThread::phase_rebuild_remembered_sets. (The same goes for the other pair of breakpoints.)

Sort of a preexisting issue but this change builds on top of it: "cleanup" can mean both the "cleanup pause" (phase_cleanup) or the "concurrent bitmap clearing" (phase_clear_bitmap_for_next_mark). IMO, it's better to get rid of such overloading.

(Not specific to this change. I also find the breakpoints naming pattern, before-X-started & after-X-completed, rather odd -- since they are breakpoints, names reflecting a particular point in time, instead of a period, would have been more accurate, sth like at-X-start & at-X-end.)

@tschatzl
Copy link
Contributor Author

tschatzl commented Jul 6, 2022

It's unclear to me why "BEFORE REBUILD COMPLETED" is placed inside phase_cleanup; a more natural place to me is at the end of G1ConcurrentMarkThread::phase_rebuild_remembered_sets. (The same goes for the other pair of breakpoints.)

(Concurrent) rebuild completes before the cleanup pause. This follows the existing scheme, e.g. in subphase_remark() there is the BEFORE MARKING COMPLETED breakpoint before the remark pause (which completes the marking).

The Cleanup pause is also a kind of extension of the rebuild remset phase as it acts on actually this information (and it has not been "cleaning up" anything relevant for a long time since JDK 11 iirc).

This seems to be a separate, pre-existing issue.

Sort of a preexisting issue but this change builds on top of it: "cleanup" can mean both the "cleanup pause" (phase_cleanup) or the "concurrent bitmap clearing" (phase_clear_bitmap_for_next_mark). IMO, it's better to get rid of such overloading.

The method names are different, one is called cleanup and the other clear_bitmap_for_next_mark phase for this reason. Maybe you suggest to rename the "Cleanup" pause and/or the "cleanup" use for the concurrent phase in the remaining code?

This renaming seems to be a separate (pre-existing) issue and related to above.

(Not specific to this change. I also find the breakpoints naming pattern, before-X-started & after-X-completed, rather odd -- since they are breakpoints, names reflecting a particular point in time, instead of a period, would have been more accurate, sth like at-X-start & at-X-end.)

The "at" seems to be more specific and could be changed separately and seems to be pre-existing.

@tschatzl
Copy link
Contributor Author

tschatzl commented Jul 6, 2022

Thanks @walulyai @kimbarrett for your reviews

/integrate

@openjdk
Copy link

openjdk bot commented Jul 6, 2022

Going to push as commit 8341895.
Since your change was applied there have been 8 commits pushed to the master branch:

  • ac6be16: 8289695: [TESTBUG] TestMemoryAwareness.java fails on cgroups v2 and crun
  • 4ad18cf: 8289730: Deprecated code sample in java.lang.ClassCastException
  • d8f4e97: 8289146: containers/docker/TestMemoryWithCgroupV1.java fails on linux ppc64le machine with missing Memory and Swap Limit output
  • f783244: 8289706: (cs) Avoid redundant TreeMap.containsKey call in AbstractCharsetProvider
  • fafe8b3: 8289604: compiler/vectorapi/VectorLogicalOpIdentityTest.java failed on x86 AVX1 system
  • 3515604: 8280481: Duplicated stubs to interpreter for static calls
  • d48694d: 8283335: Add exists and readAttributesIfExists methods to FileSystemProvider
  • c45d613: 8289687: [JVMCI] bug in HotSpotResolvedJavaMethodImpl.equals

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot added the integrated Pull request has been integrated label Jul 6, 2022
@openjdk openjdk bot closed this Jul 6, 2022
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Jul 6, 2022
@openjdk
Copy link

openjdk bot commented Jul 6, 2022

@tschatzl Pushed as commit 8341895.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@tschatzl tschatzl deleted the submit/8289739-g1-specific-gc-breakpoints branch July 8, 2022 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot hotspot-dev@openjdk.org integrated Pull request has been integrated
4 participants