JDK-8256279 : Encode SATBMarkQueue active flag via _buf == NULL
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 16
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2020-11-12
  • Updated: 2022-10-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Relates :  
Description
[~kbarrett] suggested instead of encoding the SATBMarkQueue::_active flag into _index in JDK-8227002, use a special _buf == NULL value to do that.

This simplifies the generated pre-barrier code, decreases the size of the data in the GC thread local buffer and obsoletes the need for SATBMarkQueue::_active.

This seems easier to do and require much less compiler wrangling than JDK-8227002.

An empty buffer (as opposed to no buffer) could still be encoded as 0-sized non-NULL _buf value if needed.

[Updated for JDK-8258255, which moved the active flag from PtrQueue to SATBMarkQueue.]