Code review request: NMT: assertion failed: assert(rec->addr() + rec->size() <= cur->base()) failed: Can not overlap in memSnapshot.cpp

Zhengyu Gu zhengyu.gu at oracle.com
Mon Nov 5 10:01:29 PST 2012


Coleen,

Thanks for reviewing.

On 11/5/2012 12:26 PM, Coleen Phillimore wrote:
>
> Zhengyu,
>
> *+          address committed_rgn_end = committed_rgn->addr() +*
> *!          _       committed_rgn->size(_);
>
> *
>
> Should "end" be addr() + size() -1 ?
>
I think we use this formula for end address.  For example in stack 
calculation code, etc. In range checking, the end address is excluded, 
however.

Thanks,

-Zhengyu


> This looks fine otherwise.   I like the renames that you did within 
> the code you changed.
>
> Thanks,
> Coleen
>
> On 11/2/2012 1:21 PM, Zhengyu Gu wrote:
>> Updated the webrev based on David's comment.  Overlapping stacks is 
>> tracked by 8001743.
>>
>> http://cr.openjdk.java.net/~zgu/8001591/webrev.01/
>>
>> Thanks,
>>
>> -Zhengyu
>>
>> On 10/31/2012 9:32 PM, David Holmes wrote:
>>> On 1/11/2012 2:12 AM, Zhengyu Gu wrote:
>>>> NMT did not allow overlapped commit on memory regions, which is
>>>> incorrect. Committing overlapped memory regions should be allowed, as
>>>> long as the regions are within a reserved region.
>>>
>>> So the overlapping stacks that were detected is perfectly valid?
>>>
>>>>
>>>> http://cr.openjdk.java.net/~zgu/8001591/webrev.00/
>>>
>>> The renaming from contains_xx to contain_xx is not correct. 
>>> "contains" is the correct form to use, and "overlaps" rather than 
>>> "overlap".
>>>
>>> Why the variable rename in 
>>> VMMemPointerIterator::add_reserved_region? Given it is initialized 
>>> from current() then 'cur' seems quite acceptable. Otherwise maybe it 
>>> is current() that has the wrong name? The renaming generates a lot 
>>> of noise in the webrev - it is hard to see the actual substantive 
>>> changes that were made.
>>>
>>> Cheers,
>>> David
>>>
>>>
>>>> Thanks,
>>>>
>>>> -Zhengyu


More information about the hotspot-dev mailing list