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