RFR: 8204554: JFR TLAB tracing broken after 8202776

Erik Österlund erik.osterlund at oracle.com
Thu Jun 7 14:57:14 UTC 2018


Hi Roman,

Thanks for the review.
StefanK thought it would be nicer to move the outside of TLAB path into 
a new function. So I did that. Hope you agree that is a good idea. If 
you want to override that behaviour you can still override obj_allocate_raw.

Full webrev:
cr.openjdk.java.net/~eosterlund/8204554/webrev.01/

Incremental webrev:
cr.openjdk.java.net/~eosterlund/8204554/webrev.00_01/

Checked again that tests pass now, and it passes.

Thanks,
/Erik

On 2018-06-07 16:41, Roman Kennke wrote:
> Hi Erik,
>
>> The recent allocation path modularization (8202776) broke JFR TLAB
>> sampling. This was discovered in tier 5 testing.
>>
>> The problem is that there was previously an early exit TLAB path, that
>> should not run the tracing code when not returning NULL, and a
>> mem_allocate call that should run the tracing code when not returning
>> NULL. However, these paths were joined in a virtual member function,
>> making them look the same to the tracing code, which caused the non-TLAB
>> tracing code to be run on TLAB allocations as well.
>>
>> The solution I propose is to move the TLAB tracing code into the new
>> virtual member function. It seems that whatever GC overrides this code,
>> should also decide what to do about the tracing code there anyway.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8204554/webrev.00/
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8204554
>>
>> I have run failing tests locally to verify they have been fixed with the
>> proposed patch. I am now running hs-tier1-3 as well, but am waiting for
>> the results.
> This looks good to me. Thank you!
>
> Roman
>



More information about the hotspot-dev mailing list