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