RFR: JDK-8077265 Modify assert to help debug JDK-8068448

Eric Caspole eric.caspole at oracle.com
Fri Apr 10 13:15:17 UTC 2015


I don't want to make sweeping changes to try to debug what seems like a 
race.
If you dont like the macro in psOldGen I will remove it and just go on 
with the original one.
Eric


On 4/10/2015 4:43 AM, Stefan Karlsson wrote:
> On 2015-04-09 22:17, Eric Caspole wrote:
>> Hi everybody,
>> I updated this so the psOldGen part use a macro as Stefan suggested.
>> The assert in psPromotionLAB.hpp is allocating out of an already 
>> allocated PLAB, so I don't think that one will ever be hit but I want 
>> it there just in case.
>> And as Jesper suggested I made the message more helpful in the 
>> original place.
>>
>>  http://cr.openjdk.java.net/~ecaspole/JDK-8077265/01/webrev/
>
> I had hoped you would use the new define for all assert, but you've 
> only used it for two out of four. If you're not going to use the same 
> macro for all usages, it doesn't seem worth having.
>
> http://cr.openjdk.java.net/~ecaspole/JDK-8077265/01/webrev/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp.udiff.html 
>
>
> It seems to me that we could refactor allocate_noexpand and 
> cas_allocate_noexpand to use a common function to do the assert and 
> update the start array. That way you could get rid of the macro you 
> added.
>
> Thanks,
> StefanK
>
>>
>> Passes JPRT.
>> Thanks,
>> Eric
>>
>> On 4/9/2015 10:01 AM, Stefan Karlsson wrote:
>>> Hi Eric,
>>>
>>> On 2015-04-09 15:19, Eric Caspole wrote:
>>>> HI everybody,
>>>> Here is a webrev to add more asserts related to debugging 
>>>> JDK-8068448. Beyond capturing more info in the original assert, 
>>>> after looking at another core I added more asserts to make sure 
>>>> there is no other place where old gen allocations would overrun the 
>>>> start array.
>>>
>>> Why didn't these two new asserts get the same, more informative, 
>>> error message as the first assert you changed? Maybe you could 
>>> extract the check out to a helper macro that prints the relevant 
>>> information?
>>>
>>> Another point that Bengt mentioned yesterday, is that we don't 
>>> really need to print the old_gen part of the assert. It's already 
>>> printed in the hs_err file.
>>>
>>> Thanks,
>>> StefanK
>>>
>>>>
>>>>  http://cr.openjdk.java.net/~ecaspole/JDK-8077265/00/webrev/
>>>>
>>>> Passes JPRT.
>>>> Thanks,
>>>> Eric
>>>
>>
>



More information about the hotspot-gc-dev mailing list