RFR: 8328473: StringTable and SymbolTable statistics delay time to safepoint
Aleksey Shipilev
shade at openjdk.org
Mon Feb 24 18:15:55 UTC 2025
On Mon, 24 Feb 2025 14:27:01 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
> This change adds a safepoint poll to gathering statistics for the Symbol and String tables, using the ConcurrentHashTableTasks to chunk up the walk. The stringTable and symbolTable is similar, like the GrowTask and DeleteTask code. Maybe this can be cleaned up but I don't have a good idea about that yet that doesn't involve yet another level of templated functions and code. This is already pretty highly templatized.
> Tested with tier1-4 and runThese internal test with JFR and failure injection to verify that we do try to safepoint while gathering statistics.
Looks reasonable.
Any perf data on TTSP under stress conditions? This would tell us if current claiming strategy goes well to mitigate TTSP overheads. I think something simple like "intern $M strings, do `while(true) System.gc()`, and then bash the process with `while true; do jcmd $PID VM.stringtable`; done" would do. (Should probably amend `VM_DumpHashtable::evaluate_at_safepoint() { return false; }` as well...)
src/hotspot/share/utilities/concurrentHashTable.hpp line 59:
> 57: }
> 58: }
> 59: // Calculate statistics. Item sizes are calculated with VALUE_SIZE_FUNC, and accumloated in summary and literal_size.
"accumulated"
-------------
Marked as reviewed by shade (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/23750#pullrequestreview-2637946179
PR Review Comment: https://git.openjdk.org/jdk/pull/23750#discussion_r1968120376
More information about the hotspot-dev
mailing list