RFR: Initial sizing refactor [v2]

Y. Srinivas Ramakrishna ysr at openjdk.org
Thu Dec 22 00:40:16 UTC 2022


On Wed, 21 Dec 2022 23:06:38 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahMmuTracker.cpp line 222:
>> 
>>> 220:   log_info(gc)("Thread Usr+Sys YOUNG = %.3f, OLD = %.3f, GLOBAL = %.3f", young_time_s, old_time_s, global_time_s);
>>> 221: 
>>> 222:   if (abs(delta) <= transfer_threshold) {
>> 
>> I thought the original idea was to use the difference in MMU's for old and young as the error signal to drive the (direction of the) transfer, rather than the difference in the actual times? Am I misinterpreting what `reset_collection_time` returns? You do refer to it as `thread utilization` (akin to MMU) in the log message below.
>
> I reasoned that the denominator in a comparison between MMU's (i.e., process time) would be the same on both sides of the comparison, so I omitted it.

My worry is that using the latest sample might lead to too much variance. Using a TruncatedSeq's decaying average would help with damping the error signal and lead to smoother control over sizing changes.

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

PR: https://git.openjdk.org/shenandoah/pull/185


More information about the shenandoah-dev mailing list