A webrev is here: http://cr.openjdk.java.net/~sla/8005278/webrev.00/

/Staffan

On 21 jan 2013, at 05:00, David Holmes <david.hol...@oracle.com> wrote:

> On 21/01/2013 1:06 PM, 云达 wrote:
>> Actually I just changed "BinaryTreeDictionary" to "AFLBinaryTreeDictionary", 
>> since there is no definition of BinaryTreeDictionary in the latest hotspot: 
>> http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/file/b5f6465019f6/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
>>  , which has been changed to AFLBinaryTreeDictionary. So the code in SA has 
>> to change too. The bug is already found here: 
>> http://bugs.sun.com/view_bug.do?bug_id=8005278
> 
> I'm still missing some pieces here. We have:
> 
> typedef BinaryTreeDictionary<FreeChunk, AdaptiveFreeList>
> AFLBinaryTreeDictionary;
> 
> in vmStructs and we have:
> 
> ./share/vm/memory/binaryTreeDictionary.hpp/cpp
> 
> and we have:
> 
> src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java
> 
> So I'm unclear what is causing the problem here.
> 
> Staffan: can you generate a webrev from this patch to make the context
> clearer please?
> 
> Thanks,
> David
> 
>> Regards,
>> Yunda
>> -----邮件原件-----
>> 发件人: David Holmes [mailto:david.hol...@oracle.com]
>> 发送时间: 2013年1月21日 10:45
>> 收件人: 云达
>> 抄送: Staffan Larsen; serviceability-dev@openjdk.java.net
>> 主题: Re: 答复: Errors when use "universe" command in CLHSDB
>> 
>> I couldn't quite understand the problem and fix from the patch. Why do we 
>> need to add AFLBinaryTreeDictionary ??
>> 
>> Thanks,
>> David
>> 
>> On 21/01/2013 12:03 PM, 云达 wrote:
>>> Thanks for your review again. Could someone with Reviewer status help
>>> me with this? Thanks in advance!
>>> 
>>> Regards,
>>> 
>>> Yunda
>>> 
>>> *发件人:*Staffan Larsen [mailto:staffan.lar...@oracle.com]
>>> *发送时间:*2013年1月18日20:14
>>> *收件人:*云达
>>> *抄送:*daniel.daughe...@oracle.com; serviceability-dev@openjdk.java.net
>>> *主题:*Re: Errors when use "universe" command in CLHSDB
>>> 
>>> This patch applied cleanly.
>>> 
>>> I can sponsor this fix, but we still need a review from someone with
>>> Reviewer status. Once we have that, I can push the change.
>>> 
>>> Thanks,
>>> 
>>> /Staffan
>>> 
>>> On 18 jan 2013, at 11:22, 云达<yunda....@taobao.com
>>> <mailto:yunda....@taobao.com>>  wrote:
>>> 
>>> 
>>> 
>>> OK. I diffed it with the
>>> latesthttp://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/and I hope it
>>> works. Thanks for the review!
>>> 
>>> Regards,
>>> 
>>> Yunda
>>> 
>>> *发件人:*Staffan Larsen [mailto:staffan.lar...@oracle.com
>>> <http://oracle.com>]
>>> *发送时间:*2013年1月18日17:07
>>> *收件人:*云达
>>> *抄送:*daniel.daughe...@oracle.com<mailto:daniel.daughe...@oracle.com>;
>>> serviceability-dev@openjdk.java.net
>>> <mailto:serviceability-dev@openjdk.java.net>
>>> *主题:*Re: Errors when use "universe" command in CLHSDB
>>> 
>>> Yunda,
>>> 
>>> I think this fixes http://bugs.sun.com/view_bug.do?bug_id=8005278
>>> 
>>> The changes look good to me. I couldn't apply the patch to the code
>>> cleanly, however (see below). Perhaps the patch was broken in email?
>>> Can you regenerate the patch and include it as a zipped attachment?
>>> 
>>> Thanks,
>>> 
>>> /Staffan
>>> 
>>> file
>>> agent/src/share/classes/sun/jvm/hotspot/memory/AFLBinaryTreeDictionary
>>> .java
>>> already exists
>>> 1 out of 1 hunks FAILED -- saving rejects to file
>>> agent/src/share/classes/sun/jvm/hotspot/memory/AFLBinaryTreeDictionary
>>> .java.rej
>>> patching file
>>> agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpac
>>> e.java
>>> Hunk #1 FAILED at 116
>>> Hunk #2 FAILED at 40
>>> 2 out of 2 hunks FAILED -- saving rejects to file
>>> agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpac
>>> e.java.rej
>>> patching file
>>> src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
>>> Hunk #1 succeeded at 45 with fuzz 2 (offset 0 lines).
>>> patch failed, unable to continue (try -v) patch failed, rejects left
>>> in working dir
>>> 
>>> On 18 jan 2013, at 04:54,云达<yunda....@taobao.com
>>> <mailto:yunda....@taobao.com>>  wrote:
>>> 
>>> 
>>> 
>>> 
>>> Thanks Dan!
>>> 
>>> Regards,
>>> 
>>> Yunda
>>> 
>>> *发件人:*Daniel D. Daugherty [mailto:daniel.daughe...@oracle.com
>>> <http://oracle.com>]
>>> *发送时间:*2013年1月18日10:46
>>> *收件人:*云达;serviceability-dev@openjdk.java.net
>>> <mailto:serviceability-dev@openjdk.java.net>
>>> *主题:*Re: Errors when use "universe" command in CLHSDB
>>> 
>>> Yunda,
>>> 
>>> The Serviceability Agent is maintained by the Serviceability team.
>>> I'm adding that alias to this e-mail thread (and Bcc'ing the Runtime
>>> alias.
>>> 
>>> Dan
>>> 
>>> On 1/17/13 7:42 PM,云达wrote:
>>> 
>>>     Hi all,
>>> 
>>>     This is Yunda<yunda....@taobao.com>
>>>     <mailto:yunda....@taobao.com>from Alibaba Group(with OCA).
>>> 
>>>     When I used CLHSDB( java -classpath .:$JAVA_HOME/lib/sa-jdi.jar
>>>     sun.jvm.hotspot.CLHSDB) I found two errors below(the second error
>>>     occurred after I made some fix). It seemed that some code about CMS
>>>     in SA didn’t change accordingly.
>>> 
>>>     hsdb>  universe
>>> 
>>>     Heap Parameters:
>>> 
>>>     Gen 0: eden
>>>     [0x0000000609200000,0x00000006094aeb90,0x0000000611820000) space
>>>     capacity = 140640256, 2.000007736049627 used
>>> 
>>>     from [0x0000000611820000,0x0000000611820000,0x00000006128e0000)
>>>     space capacity = 17563648, 0.0 used
>>> 
>>>     to [0x00000006128e0000,0x00000006128e0000,0x00000006139a0000) space
>>>     capacity = 17563648, 0.0 usedInvocations: 0
>>> 
>>>     Gen 1: concurrent mark-sweep generation
>>> 
>>>     Exception in thread "main" java.lang.ExceptionInInitializerError
>>> 
>>>     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)
>>> 
>>>     at
>>> 
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructo
>>> rAccessorImpl.java:57)
>>> 
>>>     at
>>> 
>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCo
>>> nstructorAccessorImpl.java:45)
>>> 
>>>     at java.lang.reflect.Constructor.newInstance(Constructor.java:395)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.runtime.VMObjectFactory.newObject(VMObjectFactory.java
>>> :58)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.ConcurrentMarkSweepGeneration.cmsSpace(Concurre
>>> ntMarkSweepGeneration.java:55)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.ConcurrentMarkSweepGeneration.printOn(Concurren
>>> tMarkSweepGeneration.java:79)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.GenCollectedHeap.printOn(GenCollectedHeap.java:
>>> 139)
>>> 
>>>     at
>>> sun.jvm.hotspot.CommandProcessor$48.doit(CommandProcessor.java:1605)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:
>>> 1897)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:
>>> 1867)
>>> 
>>>     at
>>> sun.jvm.hotspot.CommandProcessor.run(CommandProcessor.java:1747)
>>> 
>>>     at sun.jvm.hotspot.CLHSDB.run(CLHSDB.java:91)
>>> 
>>>     at sun.jvm.hotspot.CLHSDB.main(CLHSDB.java:35)
>>> 
>>>     Caused by: java.lang.RuntimeException: field "_dictionary" not found
>>>     in type CompactibleFreeListSpace
>>> 
>>>     at
>>> sun.jvm.hotspot.types.basic.BasicType.getField(BasicType.java:183)
>>> 
>>>     at
>>> sun.jvm.hotspot.types.basic.BasicType.getField(BasicType.java:190)
>>> 
>>>     at
>>> sun.jvm.hotspot.types.basic.BasicType.getField(BasicType.java:194)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.types.basic.BasicType.getAddressField(BasicType.java:2
>>> 82)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace.initialize(Compactible
>>> FreeListSpace.java:69)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace.access$000(Compactible
>>> FreeListSpace.java:35)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace$1.update(CompactibleFr
>>> eeListSpace.java:55)
>>> 
>>>     at
>>> sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver(VM.java:402)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace.<clinit>(CompactibleFr
>>> eeListSpace.java:53)
>>> 
>>>     ... 14 more
>>> 
>>>     hsdb>  universe
>>> 
>>>     Heap Parameters:
>>> 
>>>     Gen 0: eden
>>>     [0x0000000609200000,0x00000006094aeb90,0x0000000611820000) space
>>>     capacity = 140640256, 2.000007736049627 used
>>> 
>>>     from [0x0000000611820000,0x0000000611820000,0x00000006128e0000)
>>>     space capacity = 17563648, 0.0 used
>>> 
>>>     to [0x00000006128e0000,0x00000006128e0000,0x00000006139a0000) space
>>>     capacity = 17563648, 0.0 usedInvocations: 0
>>> 
>>>     Gen 1: concurrent mark-sweep generation
>>> 
>>>     free-list-space[ 0x000000064cb90000 , 0x0000000661ad0000 ) Exception
>>>     in thread "main" java.lang.ExceptionInInitializerError
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace.free(CompactibleFreeLi
>>> stSpace.java:112)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace.used(CompactibleFreeLi
>>> stSpace.java:95)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.CompactibleFreeListSpace.printOn(CompactibleFre
>>> eListSpace.java:137)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.ConcurrentMarkSweepGeneration.printOn(Concurren
>>> tMarkSweepGeneration.java:79)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.memory.GenCollectedHeap.printOn(GenCollectedHeap.java:
>>> 139)
>>> 
>>>     at
>>> sun.jvm.hotspot.CommandProcessor$48.doit(CommandProcessor.java:1605)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:
>>> 1897)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.CommandProcessor.executeCommand(CommandProcessor.java:
>>> 1867)
>>> 
>>>     at
>>> sun.jvm.hotspot.CommandProcessor.run(CommandProcessor.java:1747)
>>> 
>>>     at sun.jvm.hotspot.CLHSDB.run(CLHSDB.java:91)
>>> 
>>>     at sun.jvm.hotspot.CLHSDB.main(CLHSDB.java:35)
>>> 
>>>     Caused by: java.lang.RuntimeException: No type named "FreeList" in
>>>     database
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.types.basic.BasicTypeDataBase.lookupType(BasicTypeData
>>> Base.java:80)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.HotSpotTypeDataBase.lookupType(HotSpotTypeDataBase.jav
>>> a:134)
>>> 
>>>     at
>>> 
>>> sun.jvm.hotspot.types.basic.BasicTypeDataBase.lookupType(BasicTypeData
>>> Base.java:74)
>>> 
>>>     at sun.jvm.hotspot.memory.FreeList.initialize(FreeList.java:44)
>>> 
>>>     at sun.jvm.hotspot.memory.FreeList.access$000(FreeList.java:34)
>>> 
>>>     at sun.jvm.hotspot.memory.FreeList$1.update(FreeList.java:38)
>>> 
>>>     at
>>> sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver(VM.java:402)
>>> 
>>>     at sun.jvm.hotspot.memory.FreeList.<clinit>(FreeList.java:36)
>>> 
>>>     ... 11 more
>>> 
>>>     So I made a patch to fix them and now “universe” command works well.
>>>     Could someone help to review the patch below?
>>> 
>>>     diff -r b14da2e6f2dc -r 8652e04889a4
>>> 
>>> agent/src/share/classes/sun/jvm/hotspot/memory/AFLBinaryTreeDictionary
>>> .java
>>> 
>>>     --- /dev/null Thu Jan 01 00:00:00 1970 +0000
>>> 
>>>     +++
>>>     
>>> b/agent/src/share/classes/sun/jvm/hotspot/memory/AFLBinaryTreeDictionary.java
>>>     Fri Jan 18 09:56:06 2013 +0800
>>> 
>>>     @@ -0,0 +1,59 @@
>>> 
>>>     +/*
>>> 
>>>     + * @(#)AFLBinaryTreeDictionary.java
>>> 
>>>     + * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All
>>>     rights reserved.
>>> 
>>>     + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>>> 
>>>     + *
>>> 
>>>     + * This code is free software; you can redistribute it and/or
>>> modify it
>>> 
>>>     + * under the terms of the GNU General Public License version 2
>>> only, as
>>> 
>>>     + * published by the Free Software Foundation.
>>> 
>>>     + *
>>> 
>>>     + * This code is distributed in the hope that it will be useful, but
>>>     WITHOUT
>>> 
>>>     + * ANY WARRANTY; without even the implied warranty of
>>>     MERCHANTABILITY or
>>> 
>>>     + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
>>> License
>>> 
>>>     + * version 2 for more details (a copy is included in the LICENSE
>>>     file that
>>> 
>>>     + * accompanied this code).
>>> 
>>>     + *
>>> 
>>>     + * You should have received a copy of the GNU General Public
>>>     License version
>>> 
>>>     + * 2 along with this work; if not, write to the Free Software
>>>     Foundation,
>>> 
>>>     + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
>>> 
>>>     + *
>>> 
>>>     + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA
>>>     94065 USA
>>> 
>>>     + * or visitwww.oracle.com<http://www.oracle.com>if you need
>>>     additional information or have any
>>> 
>>>     + * questions.
>>> 
>>>     + *
>>> 
>>>     + */
>>> 
>>>     +
>>> 
>>>     +package sun.jvm.hotspot.memory;
>>> 
>>>     +
>>> 
>>>     +import java.util.*;
>>> 
>>>     +import sun.jvm.hotspot.debugger.*;
>>> 
>>>     +import sun.jvm.hotspot.types.*;
>>> 
>>>     +import sun.jvm.hotspot.runtime.*;
>>> 
>>>     +
>>> 
>>>     +public class AFLBinaryTreeDictionary extends VMObject {
>>> 
>>>     + static {
>>> 
>>>     + VM.registerVMInitializedObserver(new Observer() {
>>> 
>>>     + public void update(Observable o, Object data) {
>>> 
>>>     + initialize(VM.getVM().getTypeDataBase());
>>> 
>>>     + }
>>> 
>>>     + });
>>> 
>>>     + }
>>> 
>>>     +
>>> 
>>>     + private static synchronized void initialize(TypeDataBase db) {
>>> 
>>>     + Type type = db.lookupType("AFLBinaryTreeDictionary");
>>> 
>>>     + totalSizeField = type.getCIntegerField("_total_size");
>>> 
>>>     + }
>>> 
>>>     +
>>> 
>>>     + // Fields
>>> 
>>>     + private static CIntegerField totalSizeField;
>>> 
>>>     +
>>> 
>>>     + // Accessors
>>> 
>>>     + public long size() {
>>> 
>>>     + return totalSizeField.getValue(addr);
>>> 
>>>     + }
>>> 
>>>     +
>>> 
>>>     + // Constructor
>>> 
>>>     + public AFLBinaryTreeDictionary(Address addr) {
>>> 
>>>     + super(addr);
>>> 
>>>     + }
>>> 
>>>     +}
>>> 
>>>     diff -r b14da2e6f2dc -r 8652e04889a4
>>> 
>>> agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.ja
>>> va
>>> 
>>>     ---
>>>     
>>> a/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java
>>>     Thu Jan 17 13:40:31 2013 -0500
>>> 
>>>     +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
>>> 
>>>     @@ -1,59 +0,0 @@
>>> 
>>>     -/*
>>> 
>>>     - * @(#)BinaryTreeDictionary.java
>>> 
>>>     - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All
>>>     rights reserved.
>>> 
>>>     - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
>>> 
>>>     - *
>>> 
>>>     - * This code is free software; you can redistribute it and/or
>>> modify it
>>> 
>>>     - * under the terms of the GNU General Public License version 2
>>> only, as
>>> 
>>>     - * published by the Free Software Foundation.
>>> 
>>>     - *
>>> 
>>>     - * This code is distributed in the hope that it will be useful, but
>>>     WITHOUT
>>> 
>>>     - * ANY WARRANTY; without even the implied warranty of
>>>     MERCHANTABILITY or
>>> 
>>>     - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
>>> License
>>> 
>>>     - * version 2 for more details (a copy is included in the LICENSE
>>>     file that
>>> 
>>>     - * accompanied this code).
>>> 
>>>     - *
>>> 
>>>     - * You should have received a copy of the GNU General Public
>>>     License version
>>> 
>>>     - * 2 along with this work; if not, write to the Free Software
>>>     Foundation,
>>> 
>>>     - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
>>> 
>>>     - *
>>> 
>>>     - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA
>>>     94065 USA
>>> 
>>>     - * or visitwww.oracle.com<http://www.oracle.com>if you need
>>>     additional information or have any
>>> 
>>>     - * questions.
>>> 
>>>     - *
>>> 
>>>     - */
>>> 
>>>     -
>>> 
>>>     -package sun.jvm.hotspot.memory;
>>> 
>>>     -
>>> 
>>>     -import java.util.*;
>>> 
>>>     -import sun.jvm.hotspot.debugger.*;
>>> 
>>>     -import sun.jvm.hotspot.types.*;
>>> 
>>>     -import sun.jvm.hotspot.runtime.*;
>>> 
>>>     -
>>> 
>>>     -public class BinaryTreeDictionary extends VMObject {
>>> 
>>>     - static {
>>> 
>>>     - VM.registerVMInitializedObserver(new Observer() {
>>> 
>>>     - public void update(Observable o, Object data) {
>>> 
>>>     - initialize(VM.getVM().getTypeDataBase());
>>> 
>>>     - }
>>> 
>>>     - });
>>> 
>>>     - }
>>> 
>>>     -
>>> 
>>>     - private static synchronized void initialize(TypeDataBase db) {
>>> 
>>>     - Type type = db.lookupType("BinaryTreeDictionary");
>>> 
>>>     - totalSizeField = type.getCIntegerField("_totalSize");
>>> 
>>>     - }
>>> 
>>>     -
>>> 
>>>     - // Fields
>>> 
>>>     - private static CIntegerField totalSizeField;
>>> 
>>>     -
>>> 
>>>     - // Accessors
>>> 
>>>     - public long size() {
>>> 
>>>     - return totalSizeField.getValue(addr);
>>> 
>>>     - }
>>> 
>>>     -
>>> 
>>>     - // Constructor
>>> 
>>>     - public BinaryTreeDictionary(Address addr) {
>>> 
>>>     - super(addr);
>>> 
>>>     - }
>>> 
>>>     -}
>>> 
>>>     diff -r b14da2e6f2dc -r 8652e04889a4
>>> 
>>> agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpac
>>> e.java
>>> 
>>>     ---
>>>     
>>> a/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java
>>>     Thu Jan 17 13:40:31 2013 -0500
>>> 
>>>     +++
>>>     
>>> b/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java
>>>     Fri Jan 18 09:56:06 2013 +0800
>>> 
>>>     @@ -117,7 +117,7 @@
>>> 
>>>     }
>>> 
>>>     // large block
>>> 
>>>     - BinaryTreeDictionary bfbd = (BinaryTreeDictionary)
>>>     VMObjectFactory.newObject(BinaryTreeDictionary.class,
>>> 
>>>     + AFLBinaryTreeDictionary bfbd = (AFLBinaryTreeDictionary)
>>>     VMObjectFactory.newObject(AFLBinaryTreeDictionary.class,
>>> 
>>>     dictionaryField.getValue(addr));
>>> 
>>>     size += bfbd.size();
>>> 
>>>     diff -r b14da2e6f2dc -r 8652e04889a4
>>>     agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java
>>> 
>>>     --- a/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java
>>>     Thu Jan 17 13:40:31 2013 -0500
>>> 
>>>     +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java
>>>     Fri Jan 18 09:56:06 2013 +0800
>>> 
>>>     @@ -41,7 +41,7 @@
>>> 
>>>     }
>>> 
>>>     private static synchronized void initialize(TypeDataBase db) {
>>> 
>>>     - Type type = db.lookupType("FreeList");
>>> 
>>>     + Type type = db.lookupType("FreeList<FreeChunk>");
>>> 
>>>     sizeField = type.getCIntegerField("_size");
>>> 
>>>     countField = type.getCIntegerField("_count");
>>> 
>>>     headerSize = type.getSize();
>>> 
>>>     diff -r b14da2e6f2dc -r 8652e04889a4
>>> 
>>> src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
>>> 
>>>     ---
>>>     a/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
>>>     Thu Jan 17 13:40:31 2013 -0500
>>> 
>>>     +++
>>>     b/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
>>>     Fri Jan 18 09:56:06 2013 +0800
>>> 
>>>     @@ -43,7 +43,8 @@
>>> 
>>>     nonstatic_field(LinearAllocBlock, _word_size, size_t) \
>>> 
>>>     nonstatic_field(AFLBinaryTreeDictionary, _total_size, size_t) \
>>> 
>>>     nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0],
>>>     FreeList<FreeChunk>) \
>>> 
>>>     - nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock,
>>>     LinearAllocBlock)
>>> 
>>>     + nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock,
>>>     LinearAllocBlock) \
>>> 
>>>     + nonstatic_field(CompactibleFreeListSpace, _dictionary,
>>>     FreeBlockDictionary<FreeChunk>*)
>>> 
>>>     #define VM_TYPES_CMS(declare_type, \
>>> 
>>>     Regards,
>>> 
>>>     Yunda
>>> 
>>> 
>>> ----------------------------------------------------------------------
>>> --
>>> 
>>> 
>>>     This email (including any attachments) is confidential and may be
>>>     legally privileged. If you received this email in error, please
>>>     delete it immediately and do not copy it or use it for any purpose
>>>     or disclose its contents to any other person. Thank you.
>>> 
>>>     本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件
>>>     人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或
>>>     透露本邮件之内容。谢谢。
>>> 
>>> ----------------------------------------------------------------------
>>> --
>>> 
>>> 
>>> This email (including any attachments) is confidential and may be
>>> legally privileged. If you received this email in error, please delete
>>> it immediately and do not copy it or use it for any purpose or
>>> disclose its contents to any other person. Thank you.
>>> 
>>> 本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,
>>> 请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮
>>> 件之内容。谢谢。
>>> 
>>> <tmp.zip>
>>> 
>> 
>> ________________________________
>> 
>> This email (including any attachments) is confidential and may be legally 
>> privileged. If you received this email in error, please delete it 
>> immediately and do not copy it or use it for any purpose or disclose its 
>> contents to any other person. Thank you.
>> 
>> 本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮件之内容。谢谢。

Reply via email to