Skip to content

8383196: Shenandoah: Interpreter barriers clobber interpreter registers - #712

Open
shipilev wants to merge 1 commit into
openjdk:masterfrom
shipilev:JDK-8383196-shenandoah-int-clobbering
Open

8383196: Shenandoah: Interpreter barriers clobber interpreter registers#712
shipilev wants to merge 1 commit into
openjdk:masterfrom
shipilev:JDK-8383196-shenandoah-int-clobbering

Conversation

@shipilev

@shipilev shipilev commented Aug 7, 2026

Copy link
Copy Markdown
Member

Fixes the correctness problem in Shenandoah barriers. There is a little conflict in shenandoahBarrierSet_aarch64.cpp due to addition of AOT-handling code in later releases. Those are completely superceded by this patch, which uses properly relocatable calls.

Additional testing:

  • jcstress reproducers fail without the fix and pass with it
  • Linux x86_64 server fastdebug, jcstress 24 hour run
  • Linux (ppc64,risc-v,arm32) cross-compilation and light tests
  • Linux x86_64 server fastdebug, hotspot_gc_shenandoah
  • Linux x86_64 server fastdebug, hotspot_gc_shenandoah with -XX:TieredStopAtLevel=1
  • Linux x86_64 server fastdebug, all with -XX:+UseShenandoahGC
  • Linux AArch64 server fastdebug, all with -XX:+UseShenandoahGC
  • Linux x86_64 server fastdebug, all with -XX:+UseShenandoahGC -XX:TieredStopAtLevel=1
  • Linux AArch64 server fastdebug, all with -XX:+UseShenandoahGC -XX:TieredStopAtLevel=1


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
  • JDK-8383196 needs maintainer approval

Issue

  • JDK-8383196: Shenandoah: Interpreter barriers clobber interpreter registers (Bug - P3 - Requested)

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk25u-dev.git pull/712/head:pull/712
$ git checkout pull/712

Update a local copy of the PR:
$ git checkout pull/712
$ git pull https://git.openjdk.org/jdk25u-dev.git pull/712/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 712

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

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk25u-dev/pull/712.diff

Using Webrev

Link to Webrev Comment

@bridgekeeper

bridgekeeper Bot commented Aug 7, 2026

Copy link
Copy Markdown

👋 Welcome back shade! 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 commented Aug 7, 2026

Copy link
Copy Markdown

❗ This change is not yet ready to be integrated.
See the Progress checklist in the description for automated requirements.

@openjdk openjdk Bot changed the title Backport 3c69c9699411567bbc1f42c9369454c206b6a9c3 8383196: Shenandoah: Interpreter barriers clobber interpreter registers Aug 7, 2026
@openjdk

openjdk Bot commented Aug 7, 2026

Copy link
Copy Markdown

This backport pull request has now been updated with issue from the original commit.

@openjdk openjdk Bot added the backport Port of a pull request already in a different code base label Aug 7, 2026
@shipilev
shipilev marked this pull request as ready for review August 10, 2026 08:19
@openjdk openjdk Bot added the rfr Pull request is ready for review label Aug 10, 2026
@mlbridge

mlbridge Bot commented Aug 10, 2026

Copy link
Copy Markdown

Webrevs

@shipilev

Copy link
Copy Markdown
Member Author

/approval request Fixes the correctness problem in Shenandoah barriers. Readily manifests in jcstress, disappears after the fix. Applies nearly cleanly, with minor conflicts due to AOT additions later. Aggressive tests pass on 25u. Risk is medium-low: touches the production paths, but replaces the known broken implementation; was in mainline for 3 months without bugtail.

@openjdk

openjdk Bot commented Aug 11, 2026

Copy link
Copy Markdown

@shipilev
8383196: The approval request has been created successfully.

@openjdk openjdk Bot added the approval Requires approval; will be removed when approval is received label Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approval Requires approval; will be removed when approval is received backport Port of a pull request already in a different code base rfr Pull request is ready for review

Development

Successfully merging this pull request may close these issues.

4 participants