Skip to content

(0.45) Fixup stack references of unmounted continuation for scavenge backout #19388

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

Merged
merged 1 commit into from
Apr 26, 2024

Conversation

LinHu2016
Copy link
Contributor

@LinHu2016 LinHu2016 commented Apr 26, 2024

Due to no completeScan for scavenge backout(there are no need to fixup the references for regular objects in evacurated regions), the native stack references of unmounted continuation Objects might still point to the reversedForwardedObject in survior or tenure regions, it would cause the Assertion in following global GC.

  • scanContinuationNativeSlots for the continuation Objects during reverseForwardedObject.
  • there is no need backoutContinuationObjects processing, instead, just backout continuation list in new regions.
  • -Xgc:fvtest=forceScavengerBackout (for testing/debug only) is triggered wrong location(should not be triggered after continuationObjects processing, there is no more new allocation needed and no possible backout in real cases), do not use -Xgc:fvtest=forceScavengerBackout option for testing until further
    update.
  • new mehtod completedObjectScanPhasesCheckpoint() for future asserting no more abort Case happened after unfinalized/phantom processing in scavenge clearable phase.

Port of #19341

Due to no completeScan for scavenge backout(there are no need to fixup
the references for regular objects in evacurated regions), the native
stack references of unmounted continuation Objects might still point to
the reversedForwardedObject in survior or tenure regions, it would cause
the Assertion in following global GC.

 - scanContinuationNativeSlots for the continuation Objects during
 reverseForwardedObject.
 - there is no need backoutContinuationObjects processing, instead, just
 backout continuation list in new regions.
 - -Xgc:fvtest=forceScavengerBackout (for testing/debug only) is
 triggered wrong location(should not be triggered after
 continuationObjects processing, there is no more new allocation needed
 and no possible backout in real cases), do not use
-Xgc:fvtest=forceScavengerBackout option for testing until further
 update.
 - new mehtod completedObjectScanPhasesCheckpoint() for future
 asserting no more abort Case happened after unfinalized/phantom
 processing in scavenge clearable phase.

igned-off-by: hulin <[email protected]>
@pshipton pshipton changed the title Fixup stack references of unmounted continuation for scavenge backout (0.45) Fixup stack references of unmounted continuation for scavenge backout Apr 26, 2024
@pshipton pshipton merged commit 578a50a into eclipse-openj9:v0.45.0-release Apr 26, 2024
LinHu2016 added a commit to LinHu2016/openj9 that referenced this pull request May 27, 2024
In eclipse-openj9#19388, we are fixing up
stack references of unmounted continuation for scavenge backout during
reverseForwardedObject(), but the fixup would depend on the related
resverseForwardedPointer installed, so the scan for fix-up need to be
done after all resverseForwardedPointer are installed, otherwise some
fix-up would miss.

Using backoutContinuationObjects() to scan/fixup all of continuation
stack references in evacuate region.

Signed-off-by: hulin <[email protected]>
LinHu2016 added a commit to LinHu2016/openj9 that referenced this pull request May 27, 2024
In eclipse-openj9#19388, we are fixing up
stack references of unmounted continuation for scavenge backout during
reverseForwardedObject(), but the fixup would depend on the related
resverseForwardedPointer installed, so the scan for fix-up need to be
done after all resverseForwardedPointer are installed, otherwise some
fix-up would miss.

Using backoutContinuationObjects() to scan/fixup all of continuation
stack references in evacuate region.

Signed-off-by: hulin <[email protected]>
LinHu2016 added a commit to LinHu2016/openj9 that referenced this pull request May 28, 2024
In eclipse-openj9#19388, we are fixing up
stack references of unmounted continuation for scavenge backout during
reverseForwardedObject(), but the fixup would depend on the related
resverseForwardedPointer installed, so the scan for fix-up need to be
done after all resverseForwardedPointer are installed, otherwise some
fix-up would miss.

Using backoutContinuationObjects() to scan/fixup all of continuation
stack references in evacuate region.

Signed-off-by: hulin <[email protected]>
LinHu2016 added a commit to LinHu2016/openj9 that referenced this pull request May 29, 2024
In eclipse-openj9#19388, we are fixing up
stack references of unmounted continuation for scavenge backout during
reverseForwardedObject(), but the fixup would depend on the related
resverseForwardedPointer installed, so the scan for fix-up need to be
done after all resverseForwardedPointer are installed, otherwise some
fix-up would miss.

Using backoutContinuationObjects() to scan/fixup all of continuation
stack references in evacuate region.

Signed-off-by: hulin <[email protected]>
AswathySK pushed a commit to AswathySK/openj9 that referenced this pull request Jun 4, 2024
In eclipse-openj9#19388, we are fixing up
stack references of unmounted continuation for scavenge backout during
reverseForwardedObject(), but the fixup would depend on the related
resverseForwardedPointer installed, so the scan for fix-up need to be
done after all resverseForwardedPointer are installed, otherwise some
fix-up would miss.

Using backoutContinuationObjects() to scan/fixup all of continuation
stack references in evacuate region.

Signed-off-by: hulin <[email protected]>
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.

3 participants