RFR: 8015576: CMS: svc agent throws java.lang.RuntimeException: No type named "FreeList" in database

Vladimir Kempik vladimir.kempik at oracle.com
Wed Jul 17 10:28:10 UTC 2013


Hello

Can this be considered as approval ?
On 16.07.2013 9:07, David Holmes wrote:
> On 16/07/2013 2:41 PM, Yumin Qi wrote:
>> I can see that in 7ux:
>
> Thanks Yumin. All clear now.
>
> David
> -----
>
>> vmStructs_cms.hpp:
>>
>>    nonstatic_field(FreeChunk, _next,
>> FreeChunk*)                            \
>>    nonstatic_field(FreeChunk, _prev,
>> FreeChunk*)                            \
>>    nonstatic_field(LinearAllocBlock, _word_size,
>> size_t)                                \
>>    nonstatic_field(FreeList<FreeChunk>, _size,
>> size_t)                                \
>>    nonstatic_field(FreeList<FreeChunk>, _count,
>> ssize_t)                               \
>> nonstatic_field(BinaryTreeDictionary<FreeChunk>,_total_size,
>> size_t)                                \
>>    nonstatic_field(CompactibleFreeListSpace, _dictionary,
>> FreeBlockDictionary<FreeChunk>*)       \
>>    nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0],
>> FreeList<FreeChunk>)                   \
>>    nonstatic_field(CompactibleFreeListSpace,
>> _smallLinearAllocBlock,                        LinearAllocBlock)
>>
>>
>> The field is "_total_size".  This is change of
>> https://jbs.oracle.com/bugs/browse/JDK-7164144.
>> changeset:   3697:f69a5d43dc19
>> parent:      3695:9f059abe8cf2
>> user:        jmasa
>> date:        Wed Apr 25 09:55:55 2012 -0700
>> summary:     7164144: Fix variable naming style in freeBlockDictionary.*
>> and binaryTreeDictionary*
>>
>> Looks OK to me.
>>
>> Thanks
>> Yumin
>>
>>
>>
>> On 7/15/2013 6:30 PM, David Holmes wrote:
>>> Hi Vladimir,
>>>
>>> Why did you change the field name:
>>>
>>> -      Type type = db.lookupType("BinaryTreeDictionary");
>>> -      totalSizeField = type.getCIntegerField("_totalSize");
>>> +      Type type = db.lookupType("BinaryTreeDictionary<FreeChunk>");
>>> +      totalSizeField = type.getCIntegerField("_total_size");
>>>
>>> The patch you quoted still seems to keep the _totalSize name.
>>>
>>> >> + nonstatic_field(BinaryTreeDictionary<FreeChunk>,_totalSize, 
>>> size_t)
>>>
>>> David
>>>
>>>
>>> On 15/07/2013 11:29 PM, Vladimir Kempik wrote:
>>>> Can I have a couple of reviewers for this please ?
>>>> This is urgent now, as ZBB for 7u40 is nearing.
>>>>
>>>> Thanks
>>>> On 04.07.2013 18:50, Vladimir Kempik wrote:
>>>>> Hi all,
>>>>>
>>>>> this change fixes an issue where we could not run jmap -heap on a
>>>>> java process running with -XX:+UseConcMarkSweepGC.
>>>>>
>>>>> Partially (1 line) it's a backport of
>>>>> http://bugs.sun.com/view_bug.do?bug_id=8005278 from jdk8
>>>>>
>>>>> The problem originated from the following change in hotspot:
>>>>>  changeset    3294:9f059abe8cf2
>>>>>  parent       3284:3c91f2c9fd21
>>>>>  7131629: Generalize the CMS free list code
>>>>>
>>>>> ---
>>>>> a/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp 
>>>>>
>>>>> Fri Apr 20 17:13:36 2012 -0700
>>>>> +++
>>>>> b/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp 
>>>>>
>>>>> Thu Mar 29 19:46:24 2012 -0700
>>>>> @@ -44,11 +44,11 @@
>>>>> nonstatic_field(FreeChunk, _next, FreeChunk*) \
>>>>> nonstatic_field(FreeChunk, _prev, FreeChunk*) \
>>>>> nonstatic_field(LinearAllocBlock, _word_size, size_t) \
>>>>> - nonstatic_field(FreeList, _size, size_t) \
>>>>> - nonstatic_field(FreeList, _count, ssize_t) \
>>>>> - nonstatic_field(BinaryTreeDictionary, _totalSize, size_t) \
>>>>> - nonstatic_field(CompactibleFreeListSpace, _dictionary,
>>>>> FreeBlockDictionary*) \
>>>>> - nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0],
>>>>> FreeList) \
>>>>> + nonstatic_field(FreeList<FreeChunk>, _size, size_t) \
>>>>> + nonstatic_field(FreeList<FreeChunk>, _count, ssize_t) \
>>>>> + nonstatic_field(BinaryTreeDictionary<FreeChunk>,_totalSize, 
>>>>> size_t) \
>>>>> + nonstatic_field(CompactibleFreeListSpace, _dictionary,
>>>>> FreeBlockDictionary<FreeChunk>*) \
>>>>> + nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0],
>>>>> FreeList<FreeChunk>) \
>>>>> nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock,
>>>>> LinearAllocBlock)
>>>>> @@ -70,13 +70,13 @@
>>>>> declare_toplevel_type(CompactibleFreeListSpace*) \
>>>>> declare_toplevel_type(CMSCollector*) \
>>>>> declare_toplevel_type(FreeChunk*) \
>>>>> - declare_toplevel_type(BinaryTreeDictionary*) \
>>>>> - declare_toplevel_type(FreeBlockDictionary*) \
>>>>> - declare_toplevel_type(FreeList*) \
>>>>> - declare_toplevel_type(FreeList) \
>>>>> + declare_toplevel_type(BinaryTreeDictionary<FreeChunk>*) \
>>>>> + declare_toplevel_type(FreeBlockDictionary<FreeChunk>*) \
>>>>> + declare_toplevel_type(FreeList<FreeChunk>*) \
>>>>> + declare_toplevel_type(FreeList<FreeChunk>) \
>>>>> declare_toplevel_type(LinearAllocBlock) \
>>>>> - declare_toplevel_type(FreeBlockDictionary) \
>>>>> - declare_type(BinaryTreeDictionary, FreeBlockDictionary)
>>>>> + declare_toplevel_type(FreeBlockDictionary<FreeChunk>) \
>>>>> + declare_type(BinaryTreeDictionary<FreeChunk>,
>>>>> FreeBlockDictionary<FreeChunk>)
>>>>> #define VM_INT_CONSTANTS_CMS(declare_constant) \
>>>>> declare_constant(Generation::ConcurrentMarkSweep) \
>>>>>
>>>>>
>>>>> This fix updates the SA code to be like the hotspot code.
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~mcherkas/vladimir/8015576/webrev.00/
>>>>>
>>>>> Testing:
>>>>> - JPRT
>>>>> - Running jmap -heap successfully on a java process using
>>>>> -XX:+UseConcMarkSweepGC
>>>>>
>>>>> Thanks,
>>>>> Vladimir
>>>>
>>




More information about the hotspot-gc-dev mailing list