Request for review JDK-8140588 - Internal Error: gc/g1/ptrQueue.hpp:126 assert(_index == _sz) failed: invariant: queues are empty when activated

Alexander Harlap alexander.harlap at oracle.com
Fri Jan 6 16:35:27 UTC 2017


Change at http://cr.openjdk.java.net/~aharlap/8140588/webrev.01/

accommodates comments from Per, Kim and Martin

Yes, there is no measurable performance difference.

So make change simpler.

Alex

On 1/5/2017 7:41 AM, Per Liden wrote:
> Hi,
>
> On 2017-01-05 00:36, Kim Barrett wrote:
>>> On Dec 24, 2016, at 10:04 AM, Alexander Harlap 
>>> <alexander.harlap at oracle.com> wrote:
>>>
>>> Please review change for JDK-8140588 - Internal Error: 
>>> gc/g1/ptrQueue.hpp:126 assert(_index == _sz) failed: invariant: 
>>> queues are empty when activated
>>>
>>> Change is located at 
>>> http://cr.openjdk.java.net/~aharlap/8140588/webrev.00/
>>>
>>> It implements Per Liden fix for rechecking value of marking in 
>>> progress value inside C1 g1_pre_barrier code.
>>>
>>> Also here is optimization described by Thomas Schatzl - do recheck 
>>> only if patching involved.
>>
>> I wonder whether it is worth the effort of having distinct stubs for
>> the two cases, or just unconditionally perform the recheck in the
>> existing stub.  Thomas said he found no performance issue with the
>> simpler version.
>
> Agree. If there's no measurable performance gain by having two stubs 
> (given the other things we do in this path I'd be surprised if there 
> were) I'd vote for keeping it simple here and have one stub. That 
> would also "fix" Kim's last comment below.
>
> cheers,
> Per
>
>>
>> ------------------------------------------------------------------------------ 
>>
>> Throughout, copyright dates need updating.
>>
>> ------------------------------------------------------------------------------ 
>>
>> cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp
>>  373   Runtime1::StubID id = patch_code() == lir_patch_none ? 
>> Runtime1::g1_pre_barrier_slow_id : 
>> Runtime1::g1_pre_barrier_slow_with_recheck_id;
>>
>> Assuming we stay with the pair of stubs, this ought to be packaged up
>> as a helper function.
>>
>> Other occurrences:
>> src/cpu/arm/vm/c1_CodeStubs_arm.cpp
>> src/cpu/ppc/vm/c1_CodeStubs_ppc.cpp
>> src/cpu/s390/vm/c1_CodeStubs_s390.cpp
>> src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
>> src/cpu/x86/vm/c1_CodeStubs_x86.cpp
>>
>> ------------------------------------------------------------------------------ 
>>
>>




More information about the hotspot-gc-dev mailing list