[crac] RFR: Wait until G1 GC has finished before creating a snapshot. [v7]
Jan Kratochvil
jkratochvil at openjdk.org
Fri Aug 4 07:58:23 UTC 2023
> @rvansa did report his snapshots are about 2x-3x bigger than they should be. He then also found it only happens if the snapshot is done too quickly after GC should have been run.
>
> One can reproduce the race case by:
>
> --- a/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp
> +++ b/src/hotspot/share/gc/g1/g1UncommitRegionTask.hpp
> @@ -35,7 +35,7 @@ class G1UncommitRegionTask : public G1ServiceTask {
> // is short, while still making reasonable progress.
> static const uint UncommitSizeLimit = 128 * M;
> // Initial delay in milliseconds after GC before the regions are uncommitted.
> - static const uint UncommitInitialDelayMs = 100;
> + static const uint UncommitInitialDelayMs = 10*1000;
> // The delay between two uncommit task executions.
> static const uint UncommitTaskDelayMs = 10;
Jan Kratochvil has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
- Do not use synchronization, directly unmap it.
- Merge branch 'crac' into crac-g1gcwait
- Make -active volatile.
- bugreported by Sergey Nazarkin
- Remove accidental change of UncommitInitialDelayMs.
- bugreported by Radim Vansa
- Add an assertion at least for !is_ConcurrentGC_thread().
- Remove calling thread state assertions for wait_for_collection_finish().
- Add a generic virtual method wait_for_collection_finish().
- based on a review by Radim Vansa.
Assert calling thread state for wait_for_collection_finish().
- based on a review by Radim Vansa.
- Wait until G1 GC has finished before creating a snapshot.
-------------
Changes:
- all: https://git.openjdk.org/crac/pull/93/files
- new: https://git.openjdk.org/crac/pull/93/files/2eb4a7ee..355d8224
Webrevs:
- full: https://webrevs.openjdk.org/?repo=crac&pr=93&range=06
- incr: https://webrevs.openjdk.org/?repo=crac&pr=93&range=05-06
Stats: 884 lines in 9 files changed: 416 ins; 444 del; 24 mod
Patch: https://git.openjdk.org/crac/pull/93.diff
Fetch: git fetch https://git.openjdk.org/crac.git pull/93/head:pull/93
PR: https://git.openjdk.org/crac/pull/93
More information about the crac-dev
mailing list