Skip to content

Standard SATB Barrier Implementation - #14039

Merged
amicic merged 1 commit into
eclipse-openj9:masterfrom
RSalman:satb-bar
Dec 8, 2021
Merged

Standard SATB Barrier Implementation#14039
amicic merged 1 commit into
eclipse-openj9:masterfrom
RSalman:satb-bar

Conversation

@RSalman

@RSalman RSalman commented Nov 30, 2021

Copy link
Copy Markdown
Contributor

These changes implement the the SATB access barriers, these have been adapted from the Realtime access barriers.

  • Removed Double Barrier Code, Standard SATB does not make use of it

Adapted the following barrier from realtime for Standard SATB:

  • forcedToFinalizableObject
  • referenceGet
  • referenceReprocess
  • jniDeleteGlobalReference
  • storeObjectToInternalVMSlotImpl
  • readObjectFromInternalVMSlotImpl
  • stringConstantEscaped / checkStringConstantsLive
    checkClassLive

Signed-off-by: Salman Rana salman.rana@ibm.com

@RSalman

RSalman commented Nov 30, 2021

Copy link
Copy Markdown
Contributor Author

I know barrier implementation for checkClassLive , storeObjectToInternalVMSlotImpl and readObjectFromInternalVMSlotImpl are excessive and not needed (most likely). However, I'm not comfortable removing them as I did full testing with them implemented. Implementing these has a performance hit, but I think that's acceptable since SATB still under dev (i.e JIT not enabled, requires OOL allocations).

@RSalman

RSalman commented Nov 30, 2021

Copy link
Copy Markdown
Contributor Author

@amicic please review

Comment thread runtime/gc_modron_standard/StandardAccessBarrier.cpp Outdated
Comment thread runtime/gc_modron_standard/StandardAccessBarrier.cpp Outdated
Comment thread runtime/gc_modron_standard/StandardAccessBarrier.cpp Outdated
Comment thread runtime/gc_modron_standard/StandardAccessBarrier.cpp Outdated
Comment thread runtime/gc_modron_standard/StandardAccessBarrier.cpp Outdated
Comment thread runtime/gc_base/GenerationalAccessBarrierComponent.hpp Outdated
@RSalman

RSalman commented Dec 7, 2021

Copy link
Copy Markdown
Contributor Author

Updated PR with latest Commit:

  • All name changes in Generational Barrier reverted and the following name change made: MM_GenerationalAccessBarrierComponent::preObjectStore -> MM_GenerationalAccessBarrierComponent::postObjectStore
  • referenceGet, referenceReprocess, forcedToFinalizableObject & checkClassLive refactored and simplified

@RSalman RSalman changed the title [WIP] Standard SATB Barrier Implementation Standard SATB Barrier Implementation Dec 7, 2021
@amicic

amicic commented Dec 7, 2021

Copy link
Copy Markdown
Contributor

Jenkins test sanity all jdk11

@RSalman
RSalman force-pushed the satb-bar branch 3 times, most recently from 0a330b0 to 4143ef7 Compare December 7, 2021 20:17
These changes implement the the SATB access barriers, these have been
adapted from the Realtime access barriers.

- Removed Double Barrier Code, Standard SATB does not make use of it

Adapted the following barrier from realtime for Standard SATB:

- forcedToFinalizableObject
- referenceGet
- referenceReprocess
- jniDeleteGlobalReference
- storeObjectToInternalVMSlotImpl
- readObjectFromInternalVMSlotImpl
- stringConstantEscaped / checkStringConstantsLive
checkClassLive

Signed-off-by: Salman Rana <salman.rana@ibm.com>
@RSalman

RSalman commented Dec 7, 2021

Copy link
Copy Markdown
Contributor Author

@amicic could you please restart the tests

@amicic

amicic commented Dec 8, 2021

Copy link
Copy Markdown
Contributor

Jenkins test sanity all jdk11

@amicic

amicic commented Dec 8, 2021

Copy link
Copy Markdown
Contributor

Jenkins compile win32 jdk8

@amicic
amicic merged commit 95691de into eclipse-openj9:master Dec 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants