JDK-8188056 : G1/SATB in progress checked twice in C1
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9,10
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: generic
  • CPU: x86,aarch64
  • Submitted: 2017-09-27
  • Updated: 2017-09-29
  • Resolved: 2017-09-29
Related Reports
Relates :  
Description
In C1, for the G1/SATB pre-barrier, the SATB active flag is checked once in the generated LIR (in LIRGenerator::G1SATBCardTableModRef_pre_barrier() ), and then again in the runtime stub generated in c1_Runtime1.cpp and probably other CPU arches too. I suggest to remove the check in assembly code. This does not affect correctness.
Comments
As [~aharlap] commented, the second check is necessary because of JDK-8140588. So closing this as will not fix.
29-09-2017

Suggested enhancement is to revert fix for JDK-8140588 Internal Error: gc/g1/ptrQueue.hpp:126 assert(_index == _sz) failed: invariant: queues are empty when activated. Second check of SATB active flag is actually necessary.
29-09-2017