RFR: 8186837: Memory ordering nmethod, _state and _stack_traversal_mark
robbin.ehn at oracle.com
Tue Aug 29 10:31:17 UTC 2017
Hi please review,
The issue 8180932 - "Parallelize safepoint cleanup" changed _stack_traversal_mark to load acquire/store release, this is at least half wrong.
Instead for simplicity the write side storestore fence should be match with loadload on read side and the changes to _stack_traversal_mark undone (kept it volatile).
It's not clear in this code if there other concurrent dependent read/writes.
Is true that only when reading/writing _state and _stack_traversal_mark proper memory ordering is needed?
To track that I created: https://bugs.openjdk.java.net/browse/JDK-8186839
More information about the hotspot-compiler-dev