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

Poonam Bajaj poonam.bajaj at oracle.com
Thu Jul 18 03:20:33 PDT 2013


Hi Vladimir,

The changes look good.

Thanks,
Poonam

On 7/15/2013 6:59 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