Prepopulated SerialGC old gen causes slow GC verification

Thomas Schatzl thomas.schatzl at oracle.com
Thu Sep 9 08:09:11 UTC 2021


Hi,

On 08.09.21 22:33, Ioi Lam wrote:
> 
> 
> On 9/8/21 12:05 PM, Thomas Schatzl wrote:
>> Hi,
>>
>> On 08.09.21 20:14, Ioi Lam wrote:
>>> I am trying to implement JDK-8273508 - Support archived heap objects 
>>> in SerialGC
>>>
>>> https://github.com/openjdk/jdk/compare/master...iklam:8273508-archived-heap-objects-for-serial-gc?expand=1 
>>>
>>>
>>> My initial implementation copies the archived objects into 
>>> SerialHeap::old_gen(). However, this causes very slow GC verification:
>>
>> Maybe the verification does odd things that need a good BOT (that it 
>> does not do in young gen)? Just a guess.
>>
> 
> What is a BOT? :-)

Block offset table :) It's a shortcut table recording for every card 
(512 byte area) where in the previous card the next object start is. 
I.e. if you have just a HeapWord* and want to know what object is there 
or walk the heap from that location, the GC looks in the corresponding 
BOT table entry where the next object start is, and then walks to that 
HeapWord* from there.

Otherwise it needs to start walking to that location from the start of 
the generation because it does not know. That might take a while... 
(considering you need to do this for *every* object).

But a quick hack showed that this is not the issue here (if I got it right).

Thomas



More information about the hotspot-gc-dev mailing list