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

David Holmes david.holmes at oracle.com
Mon Jul 15 22:07:53 PDT 2013


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-runtime-dev mailing list