RFR: 8062870: src/share/vm/services/mallocTracker.hpp:64 assert(_count > 0) failed: Negative ,counter

David Holmes david.holmes at oracle.com
Tue Nov 11 08:14:38 UTC 2014


On 11/11/2014 12:28 PM, Coleen Phillimore wrote:
>
> I've made the change to use right_n_bits and run the NMT tests
> (including the one that crashed in a loop for a while).
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8062870_3/
>
> Thanks.  This is a big improvement.

Looks good to me too. I think "we" forget the goodies located in 
globalDefinitions.hpp sometimes :)

David

> Coleen
>
> On 11/10/14, 7:21 PM, John Rose wrote:
>> I think on many LP64 platforms the value of (1<<40) is 256, same as
>> (1<<8).  It will seldom be the intended value of (int64_t)1<<40.
>>
>> The C "<<" operator is notoriously devious (not to say shifty).
>>
>> For shift/mask arithmetic we should be continuing to use macros from
>> globalDefinitions.hpp.
>> They are far more reliable than C expressions.
>>
>> — John
>>
>> On Nov 10, 2014, at 9:21 AM, Coleen Phillimore
>> <coleen.phillimore at oracle.com> wrote:
>>
>>> Summary: Signed bitfield size y can only have (1 << y)-1 values.
>>>
>>> We were overflowing the the _pos index and reusing the 0th element in
>>> the MallocSiteTable for two different stack traces which caused the
>>> assert for deallocation.
>>>
>>> Tested with nsk.quick.testlist and jtreg runtime tests with
>>> -XX:NativeMemoryTracking=detail.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8062870/
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8062870
>>>
>>> Thanks,
>>> Coleen
>


More information about the hotspot-runtime-dev mailing list