RFR: Improve evacuation instrumentation
William Kemper
wkemper at openjdk.org
Mon Nov 7 17:16:49 UTC 2022
On Mon, 7 Nov 2022 16:16:33 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> This change adds instrumentation to reveal the following:
>> * How many bytes were evacuated by gc workers and mutators
>> * How many bytes were abandoned due to evacuation races
>> * The age of survivors
>> * The break down of targets for evacuation in the collection set
>>
>> The implementation is based on a new thread local structure to track and aggregate these statistics.
>
> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 858:
>
>> 856: // We squelch excessive reports to reduce noise in logs. Squelch enforcement is not "perfect" because
>> 857: // this same code can be in-lined in multiple contexts, and each context will have its own copy of the static
>> 858: // last_report_epoch and this_epoch_report_count variables.
>
> Is this comment still relevant. Maybe not since the code is no longer in-lined in multiple contexts.
>
> Thanks for this improvement to the code structure. This should be relatively rare, so we don't want to in-line it everywhere.
Yes, I think the comment is still relevant. The main change here was to get the gc cycle id from the control thread, rather than the `GCId::current()` (which can apparently only be used from a named thread).
-------------
PR: https://git.openjdk.org/shenandoah/pull/167
More information about the shenandoah-dev
mailing list