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

Vladimir Kempik vladimir.kempik at oracle.com
Mon Jul 15 13:29:49 UTC 2013


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