RFR: 8361055: Serial: Inline SerialHeap::process_roots [v2]

Albert Mingkun Yang ayang at openjdk.org
Fri Jul 4 12:01:00 UTC 2025


On Fri, 4 Jul 2025 11:15:05 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Albert Mingkun Yang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   review
>
> src/hotspot/share/gc/serial/defNewGeneration.cpp line 627:
> 
>> 625:     ScavengableNMethods::nmethods_do(&nmethod_cl);
>> 626: 
>> 627:     OopStorageSet::strong_oops_do(&oop_cl);
> 
> Suggestion:
> 
>     // During young-gc, visit all (strong+weak) clds with the same closure.
>     ClassLoaderDataGraph::cld_do(&cld_cl);
> 
>     Threads::oops_do(&oop_cl, &nmethod_cl);
> 
>     OopStorageSet::strong_oops_do(&oop_cl);
> 
>     ScavengableNMethods::nmethods_do(&nmethod_cl);
> 
> 
> Keep same order of CLDG, Thread roots and OopStorage iteration to keep comparability high.

It's kind of intentional that `Threads::oops_do(&oop_cl, &nmethod_cl);` and `ScavengableNMethods::nmethods_do(&nmethod_cl);` are next to each other. This way, it becomes more obvious that `Threads::oops_do` don't need to visit nmethod, i.e. nmethod_cl can be null there.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26038#discussion_r2185178116


More information about the hotspot-gc-dev mailing list