RFR: 8267579: Thread::cooked_allocated_bytes() hits assert(left >= right) failed: avoid underflow [v2]

David Holmes dholmes at openjdk.java.net
Wed Jun 9 13:39:17 UTC 2021


On Mon, 7 Jun 2021 14:15:56 GMT, Markus Grönlund <mgronlun at openjdk.org> wrote:

>> This is a workaround to avoid hitting the assert that was recently added to pointer_delta(). 
>> 
>> The implementation of cooked_allocated_bytes() is perhaps questionable, in that it reads tlab pointers optimistically. However, the functionality has been in place for a long time, and the impact of changing its behavior more substantially is unknown at this time, hence this defensive workaround to reduce noise and problems seen in general testing.
>> 
>> Testing: tier1, tier2, tier6, tier8
>> 
>> Thanks
>> Markus
>
> Markus Grönlund has updated the pull request incrementally with one additional commit since the last revision:
> 
>   read once

src/hotspot/share/gc/shared/threadLocalAllocBuffer.cpp line 478:

> 476: }
> 477: 
> 478: const HeapWord* ThreadLocalAllocBuffer::start_relaxed() const {

Why do we need the "relaxed" terminology? By default accessors have no memory ordering properties.

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

PR: https://git.openjdk.java.net/jdk/pull/4363


More information about the hotspot-jfr-dev mailing list