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

Stefan Karlsson stefan.karlsson at oracle.com
Fri Apr 10 13:19:25 UTC 2015

On 2015-04-10 15:15, Eric Caspole wrote:
> 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.

Sounds good to me.


> 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