RFR: 8350605: assert(!heap->is_uncommit_in_progress()) failed: Cannot uncommit bitmaps while resetting them
Kelvin Nilsen
kdnilsen at openjdk.org
Fri Feb 28 15:58:00 UTC 2025
On Tue, 25 Feb 2025 01:38:14 GMT, William Kemper <wkemper at openjdk.org> wrote:
> The protocol which is meant to prevent regions from being uncommitted while their bitmaps are being reset may fail. This happens when the control thread attempts to wait for the uncommit thread to finish, but the uncommit thread has not yet indicated that it has started.
>
> ## Testing
> GHA, Dacapo, Extremem, Heapothesys, Diluvian, SpecJBB2015, SpecJVM2008 (with and without stress flags, asserts). Also have run the JTREG test that failed this assertion over 10K times (and counting).
Looks good. Most of our pipeline tests are running with fixed size heap and pretouch. Do we have good test coverage of scattered uncommitted regions?
src/hotspot/share/gc/shenandoah/shenandoahUncommitThread.cpp line 146:
> 144: log_info(gc, start)("%s", msg);
> 145:
> 146: const size_t uncommitted_region_count = do_uncommit_work(shrink_before, shrink_until);
a comment here might also be helpful. i think this is newly uncommitted by the current call. there may be other preexisting uncommitted regions?
src/hotspot/share/gc/shenandoah/shenandoahUncommitThread.hpp line 63:
> 61: bool is_uncommit_allowed() const;
> 62:
> 63: size_t do_uncommit_work(double shrink_before, size_t shrink_until) const;
A comment describing arguments and return value would be nice. Mention premature termination if gc is requested.
-------------
Marked as reviewed by kdnilsen (Committer).
PR Review: https://git.openjdk.org/jdk/pull/23760#pullrequestreview-2651140350
PR Review Comment: https://git.openjdk.org/jdk/pull/23760#discussion_r1975639431
PR Review Comment: https://git.openjdk.org/jdk/pull/23760#discussion_r1975635358
More information about the shenandoah-dev
mailing list