RFR: 8327000: GenShen: Integrate updated Shenandoah implementation of FreeSet into GenShen [v8]

Kelvin Nilsen kdnilsen at openjdk.org
Tue Jun 18 20:34:27 UTC 2024


On Tue, 18 Jun 2024 20:21:17 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp line 2066:
>> 
>>> 2064:            "Boundaries or find_first_set_bit failed: " SSIZE_FORMAT, index);
>>> 2065:     ShenandoahHeapRegion* r = _heap->get_region(index);
>>> 2066:     if (r->is_empty()) {
>> 
>> This algorithm has changed from upstream. Is that intentional?
>
> That change came in when I merged from master.  I had assumed the change had also been applied upstream.  Is your diff compared to a "recent" upstream?
> 
> dc184f1099e0 (Kelvin Nilsen    2024-05-16 16:47:09 +0000 2037)     ShenandoahHeapRegion* r = _heap->get_region(index);
> dc184f1099e0 (Kelvin Nilsen    2024-05-16 16:47:09 +0000 2038)     if (r->is_empty()) {
> dc184f1099e0 (Kelvin Nilsen    2024-05-16 16:47:09 +0000 2039)       free += ShenandoahHeapRegion::region_size_bytes();
> dc184f1099e0 (Kelvin Nilsen    2024-05-16 16:47:09 +0000 2040)       if (last_idx + 1 == index) {
> dc184f1099e0 (Kelvin Nilsen    2024-05-16 16:47:09 +0000 2041)         empty_contig++;
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2042)       } else {
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2043)         empty_contig = 0;
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2044)       }
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2045)
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2046)       max_contig = MAX2(max_contig, empty_contig);
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2047)       last_idx = index;
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2048)     }
> 5f22805a50d4 (Kelvin Nilsen    2024-06-13 14:04:30 +0000 2049)     index = _partitions.find_index_of_next_available_region(Shenando\
> ahFreeSetPartitionId::Mutator, index + 1);
> f37149b1c510 (Aleksey Shipilev 2020-03-23 19:14:01 +0100 2050)   }

I think we may have drifted from openjdk/jdk after we forked our generational shenandoah work?

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/440#discussion_r1645021724


More information about the shenandoah-dev mailing list