RFR: JDK-8066442 - Add PS and ParOld support

Staffan Friberg staffan.friberg at oracle.com
Mon Dec 8 17:43:28 UTC 2014


Thanks for the good catch!

Here is an updated webrev, 
http://cr.openjdk.java.net/~sfriberg/JDK-8066442/webrev.01

Thanks,
Staffan

On 12/06/2014 01:50 AM, Erik Helin wrote:
> Hi Staffan,
>
> On 2014-12-05 23:14, Staffan Friberg wrote:
>> Hi,
>>
>> Second part of adding PLAB events[1]. This patch adds support for
>> Parallel Scavenge.
>>
>> Bug (sub-task): https://bugs.openjdk.java.net/browse/JDK-8066442
>> Webrev: http://cr.openjdk.java.net/~sfriberg/JDK-8066442/webrev.00
>
> + if (lab != NULL &&
>       gc_tracer->should_report_promotion_in_new_plab_event()) {
> +        ...
> + } else if(gc_tracer->should_report_promotion_outside_plab_event()) {
> +        ...
> + }
>
> The logic is wrong here when:
> - lab != NULL is true
> - gc_tracer->should_report_promotion_in_new_plab_event() is false
> - gc_tracer->should_report_promotion_outside_plab_event() is true
>
> In this case, the first if expression will be false and the second 
> will be true, so the code will send an PromotionOutsidePLAB event, 
> even though the code just allocated a new PLAB. For this case, no 
> event should have been sent.
>
> You must either arrange the if statements like:
> if (lab != NULL) {
>   if (should_send_promotion_in_new_plab_event()) {
>     ...
>   }
> } else if (should_send_promotion_outside_plab_event()) {
>   ...
> }
>
> or like:
> if (lab != NULL && should_send_promotion_in_new_plab_event()) {
>   ...
> } else if (lab == NULL && should_send_promotion_outside_plab_event()) {
>   ...
> }
>
> Thanks,
> Erik
>
>> Thanks,
>> Staffan
>>
>> [1] - (RFR: JDK-8055845 - Add trace event for promoted objects) -
>> http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2014-December/011477.html 
>>
>>
>>




More information about the hotspot-gc-dev mailing list