JDK-8322631 : Enable loop strip mining for all GCs
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 23
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2023-12-21
  • Updated: 2024-01-03
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 :  
Description
We enable loop strip mining and counted loop safepoint polls for G1, ZGC and Shenandoah. We do however not enable it for ParallelGC and SerialGC. The reasoning behind these heuristic defaults is that you probably care about latencies more when using G1, ZGC and Shenandoah, so they need to poll in loops.

The effect when using ParallelGC or SerialGC is that you can sometimes have extremely high time to safepoint, as there are no safepoint polls in counted loops at all. And even though it's a finite number of iterations in the loop, the time to execute it can be very long, causing pathological behaviour.

The cost of having loop strip mining and counted loop safepoint polls on is pretty insignificant, so I think we should stop saying it depends on the GC what we do here. This should just be on all the time IMO.
Comments
Paging [~roland].
03-01-2024