RFR: JDK-8077265 Modify assert to help debug JDK-8068448
Stefan Karlsson
stefan.karlsson at oracle.com
Mon Apr 13 20:39:27 UTC 2015
On 2015-04-13 17:52, Eric Caspole wrote:
> Thinking about it over the weekend, I really do want some new asserts
> in psOldGen because it should catch the problem in a
> different/interesting way.
> I am happy to back out the changes in psPromotionLAB.cpp and hpp,
> since that part already catches the problem.
>
> Stefan, do you want to this change to use the macro in psOldGen as I
> was doing before or refactor into a new function?
I think I'd prefer a new function to get rid of the setup of the local
__variable_name__ variables. We would lose the line number of the call
site, if we replace the macro with a function, but the stack trace in
the hs_err file tell us where we came from, so I think that's OK.
Thanks,
StefanK
> Thanks,
> Eric
>
>
> On 4/10/2015 9:19 AM, Stefan Karlsson wrote:
>> 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.
>>
>> StefanK
>>
>>> 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
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20150413/f6ce62fa/attachment.htm>
More information about the hotspot-gc-dev
mailing list