JDK-8352139 : Remove unused G1UpdateBufferSize global variable
  • Type: CSR
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P4
  • Status: Draft
  • Resolution: Unresolved
  • Fix Versions: tbd
  • Submitted: 2025-03-17
  • Updated: 2025-03-21
Related Reports
CSR :  
Description
Summary
-------

Remove the `G1UpdateBufferSize` global variable because the changes for [JDK-8342382](https://bugs.openjdk.org/browse/JDK-8342382) removed the data structure it governs.

Problem
-------

[JDK-8342382](https://bugs.openjdk.org/browse/JDK-8342382) implements a completely new strategy to store cards that need further refinement. Instead of using per-thread `G1UpdateBufferSize` sized buffers, there is a statically allocated card table now.

Solution
--------

Immediately obsolete the option `G1UpdateBufferSize` in this JDK release (JDK 25), slated for removal in the next JDK release (JDK 26).

Specification
-------------

```
diff --git a/src/hotspot/share/gc/g1/g1_globals.hpp b/src/hotspot/share/gc/g1/g1_globals.hpp
index 44d0d22257e..b5ed8b888b3 100644
--- a/src/hotspot/share/gc/g1/g1_globals.hpp
+++ b/src/hotspot/share/gc/g1/g1_globals.hpp
@@ -161,10 +161,6 @@
           "When expanding, % of uncommitted space to claim.")               \
           range(0, 100)                                                     \
                                                                             \
-  product(size_t, G1UpdateBufferSize, 256,                                  \
-          "Size of an update buffer")                                       \
-          constraint(G1UpdateBufferSizeConstraintFunc, AtParse)             \
-                                                                            \
   product(uint, G1RSetUpdatingPauseTimePercent, 10,                         \
           "A target percentage of time that is allowed to be spend on "     \
           "processing remembered set update buffers during the collection " \
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index c6651c46e02..e7a86f3c04c 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -534,6 +534,7 @@ static SpecialFlag const special_jvm_flags[] = {
   { "MetaspaceReclaimPolicy",       JDK_Version::undefined(), JDK_Version::jdk(21), JDK_Version::undefined() },
   { "ZGenerational",                JDK_Version::jdk(23), JDK_Version::jdk(24), JDK_Version::undefined() },
   { "ZMarkStackSpaceLimit",         JDK_Version::undefined(), JDK_Version::jdk(25), JDK_Version::undefined() },
+  { "G1UpdateBufferSize",           JDK_Version::undefined(), JDK_Version::jdk(25), JDK_Version::jdk(26) },
 
 #ifdef ASSERT
   { "DummyObsoleteTestFlag",        JDK_Version::undefined(), JDK_Version::jdk(18), JDK_Version::undefined() },
```