On Thu, 9 Nov 2023 10:29:29 GMT, Stefan Johansson <sjoha...@openjdk.org> wrote:

>> Jonathan Joo has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Add missing cpuTimeCounters files
>
> src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp line 189:
> 
>> 187: void G1PrimaryConcurrentRefineThread::maybe_update_threads_cpu_time() {
>> 188:   if (UsePerfData && os::is_thread_cpu_time_supported()) {
>> 189:     cr()->update_concurrent_refine_threads_cpu_time();
> 
> I think we should pull the tracking closure in here and that way leave the 
> concurrent refine class untouched. 
> 
> Suggestion:
> 
>     // The primary thread is responsible for updating the CPU time for all 
> workers.
>     CPUTimeCounters* counters = G1CollectedHeap::heap()->cpu_time_counters();
>     ThreadTotalCPUTimeClosure tttc(counters, CPUTimeGroups::gc_conc_refine);
>     cr()->threads_do(&tttc);
> 
> 
> This is more or less a copy from 
> `G1ConcurrentRefineThreadControl::update_threads_cpu_time()` which if we go 
> with this solution can be removed. The above needs some new includes though.
> 
> I change the comment a because I could not fully understand it, the primary 
> thread is the one always checking and starting more threads so it is not 
> stopped first. Also not sure when a terminated thread could be read. Even the 
> stopped threads are still present so should be fine. If I'm missing something 
> feel free to add back the comment.

Thank you for the review! Do you think you could take a look at the newest 
update and see if that aligns with what you were thinking? I wanted to make 
sure I understood your comments correctly.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15082#discussion_r1390054625

Reply via email to