RFR: 8342444: Shenandoah: Uncommit regions from a separate, STS aware thread

Kelvin Nilsen kdnilsen at openjdk.org
Tue Nov 12 17:32:00 UTC 2024


On Mon, 11 Nov 2024 17:31:58 GMT, William Kemper <wkemper at openjdk.org> wrote:

> Currently, Shenandoah uncommits regions from its control thread. The control thread is responsible for starting GC cycles in a timely fashion. Uncommitting memory from this thread may introduce unwanted delays in the control thread's response to GC pressure.

src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 555:

> 553:     while (region != nullptr) {
> 554:       {
> 555:         ShenandoahHeapLocker locker(heap->lock());

Was it a bug that previous version of this code did not acquire the heap lock?

Is the lock required for the entirety of time that we are clearing the bitmap?  Or is it just required to get a trustworthy check on is_bitmap_slice_committed()?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22019#discussion_r1837047649


More information about the hotspot-gc-dev mailing list