RFR (S) 6909265: assert(_OnDeck != Self->_MutexEvent, "invariant") with -XX:+PrintMallocFree

dean.long at oracle.com dean.long at oracle.com
Thu Feb 1 20:42:42 UTC 2018


On 2/1/18 10:33 AM, coleen.phillimore at oracle.com wrote:

>
>
> On 2/1/18 9:00 AM, Zhengyu Gu wrote:
>>
>>
>> On 02/01/2018 08:37 AM, coleen.phillimore at oracle.com wrote:
>>>
>>>
>>> On 1/31/18 10:36 PM, David Holmes wrote:
>>>> Hi Coleen,
>>>>
>>>> On 1/02/2018 1:01 PM, coleen.phillimore at oracle.com wrote:
>>>>> Summary: Convert to logging without thread locking
>>>>>
>>>>> There are two options (-XX:+PrintMallocFree and -XX:+PrintMalloc) 
>>>>> to print the calls and memory returned in malloc and free calls in 
>>>>> the vm. I converted the first one to Unified Logging which doesn't 
>>>>> crash getting the tty lock in the Thread destructor and removed 
>>>>> the latter.  I don't see the usefulness of this logging honestly, 
>>>>> so if the opinion is to remove this logging, I'd be happy to do 
>>>>> so. NMT seems much more useful.
>>>>
>>>> I'm not sure about this one. Arguably some interesting malloc/frees 
>>>> occur before log configuration.
>>>
>>> They also occurred before tty initialization and afterward too.
>>>>
>>>> That aside, given you always seem to do:
>>>>
>>>> log_is_enabled(Trace, malloc, free)
>>>>
>>>> which requires
>>>>
>>>> -Xlog:malloc+free=trace
>>>>
>>>> would it make more sense to define a single tag eg mallocfree or 
>>>> nativemem or ???
>>>>
>>>
>>> It's an opinion question.  I picked this to match the option and 
>>> assume one would want to see both mallocs and frees.  I like the 
>>> composition of small tags that have meaning.  Then again, I could 
>>> change it if you have an opinion about this.
>>>> Or, as you say, just drop this altogether. Is it useful for when 
>>>> debugging NMT?
>>>>
>>>
>>> I doubt it's useful for debugging NMT.  It might have been useful 
>>> once but I don't know why.  What's your opinion?
>>
>> No, I never used this to debug NMT. It just generates too much data 
>> to be useful, I vote to remove it all together.
>
> Thank you, Zhengyu.  I agree with you.  We'll wait to see what David 
> (or anyone else that wants to save this logging) thinks.
>

If we wanted to log things during initialization before logging is set 
up, could we copy it to a static buffer (assuming we are 
single-threaded), and then log it when logging is done being set up?

dl


> Coleen
>>
>> Thanks,
>>
>> -Zhengyu
>>
>>
>>>
>>> thanks,
>>> Coleen
>>>
>>>> Thanks,
>>>> David
>>>>
>>>>> Tested with NMT and tier1 tests, and wrote test.
>>>>>
>>>>> open webrev at http://cr.openjdk.java.net/~coleenp/6909265.01/webrev
>>>>> bug link https://bugs.openjdk.java.net/browse/JDK-6909265
>>>>>
>>>>> Thanks,
>>>>> Coleen
>>>
>



More information about the hotspot-runtime-dev mailing list