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 
If you dont like the macro in psOldGen I will remove it and just go on 
with the original one.

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