Fri, 09 May 2008 08:55:13 -0700
6670684: 4/5 SA command universe did not print out CMS space information
Summary: Forward port of Yumin's fix for 6670684 from HSX-11; Yumin verified the port was correct.
Reviewed-by: dcubed
1.1 --- a/agent/make/Makefile Tue Apr 01 16:14:18 2008 -0700 1.2 +++ b/agent/make/Makefile Fri May 09 08:55:13 2008 -0700 1.3 @@ -246,16 +246,16 @@ 1.4 all: filelist 1.5 @mkdir -p $(OUTPUT_DIR) 1.6 @echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) 1.7 - @javac -source 1.4 -classpath $(CLASSPATH) -deprecation -sourcepath $(SRC_DIR) -g -d $(OUTPUT_DIR) @filelist 1.8 - @rmic -classpath $(OUTPUT_DIR) -d $(OUTPUT_DIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer 1.9 + @${JDK_HOME}/bin/javac -source 1.4 -classpath $(CLASSPATH) -deprecation -sourcepath $(SRC_DIR) -g -d $(OUTPUT_DIR) @filelist 1.10 + @${JDK_HOME}/bin/rmic -classpath $(OUTPUT_DIR) -d $(OUTPUT_DIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer 1.11 rm -f $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql/sa.js 1.12 cp $(SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql 1.13 1.14 allprof: filelist 1.15 @mkdir -p $(OUTPUT_DIR) 1.16 @echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) 1.17 - @javac -source 1.4 -J-Xprof -classpath $(CLASSPATH) -deprecation -sourcepath $(SRC_DIR) -g -d $(OUTPUT_DIR) @filelist 1.18 - @rmic -classpath $(OUTPUT_DIR) -d $(OUTPUT_DIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer 1.19 + @${JDK_HOME}/bin/javac -source 1.4 -J-Xprof -classpath $(CLASSPATH) -deprecation -sourcepath $(SRC_DIR) -g -d $(OUTPUT_DIR) @filelist 1.20 + @${JDK_HOME}/bin/rmic -classpath $(OUTPUT_DIR) -d $(OUTPUT_DIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer 1.21 rm -f $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql/sa.js 1.22 cp $(SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(OUTPUT_DIR)/sun/jvm/hotspot/utilities/soql 1.23
2.1 --- a/agent/src/share/classes/sun/jvm/hotspot/HSDB.java Tue Apr 01 16:14:18 2008 -0700 2.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/HSDB.java Fri May 09 08:55:13 2008 -0700 2.3 @@ -398,7 +398,7 @@ 2.4 frame.getContentPane().add(desktop); 2.5 GraphicsUtilities.reshapeToAspectRatio(frame, 4.0f/3.0f, 0.75f, Toolkit.getDefaultToolkit().getScreenSize()); 2.6 GraphicsUtilities.centerInContainer(frame, Toolkit.getDefaultToolkit().getScreenSize()); 2.7 - frame.show(); 2.8 + frame.setVisible(true); 2.9 2.10 Runtime.getRuntime().addShutdownHook(new java.lang.Thread() { 2.11 public void run() {
3.1 --- a/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java Tue Apr 01 16:14:18 2008 -0700 3.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java Fri May 09 08:55:13 2008 -0700 3.3 @@ -148,7 +148,7 @@ 3.4 } 3.5 3.6 try { 3.7 - return file.toURL(); 3.8 + return file.toURI().toURL(); 3.9 } catch (MalformedURLException mue) { 3.10 throw new InternalError(mue.getMessage()); 3.11 }
4.1 --- a/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java Tue Apr 01 16:14:18 2008 -0700 4.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java Fri May 09 08:55:13 2008 -0700 4.3 @@ -47,6 +47,6 @@ 4.4 4.0f/3.0f, 0.85f, Toolkit.getDefaultToolkit().getScreenSize()); 4.5 GraphicsUtilities.centerInContainer(frame, 4.6 Toolkit.getDefaultToolkit().getScreenSize()); 4.7 - frame.show(); 4.8 + frame.setVisible(true); 4.9 } 4.10 }
5.1 --- a/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java Tue Apr 01 16:14:18 2008 -0700 5.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java Fri May 09 08:55:13 2008 -0700 5.3 @@ -78,7 +78,7 @@ 5.4 this(parent); 5.5 this.classPathSet = true; 5.6 try { 5.7 - addURL(new File(classPath).toURL()); 5.8 + addURL(new File(classPath).toURI().toURL()); 5.9 } catch(MalformedURLException mue) { 5.10 throw new RuntimeException(mue); 5.11 }
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java Fri May 09 08:55:13 2008 -0700 6.3 @@ -0,0 +1,59 @@ 6.4 +/* 6.5 + * @(#)BinaryTreeDictionary.java 6.6 + * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. 6.7 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 6.8 + * 6.9 + * This code is free software; you can redistribute it and/or modify it 6.10 + * under the terms of the GNU General Public License version 2 only, as 6.11 + * published by the Free Software Foundation. 6.12 + * 6.13 + * This code is distributed in the hope that it will be useful, but WITHOUT 6.14 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 6.15 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 6.16 + * version 2 for more details (a copy is included in the LICENSE file that 6.17 + * accompanied this code). 6.18 + * 6.19 + * You should have received a copy of the GNU General Public License version 6.20 + * 2 along with this work; if not, write to the Free Software Foundation, 6.21 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 6.22 + * 6.23 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 6.24 + * CA 95054 USA or visit www.sun.com if you need additional information or 6.25 + * have any questions. 6.26 + * 6.27 + */ 6.28 + 6.29 +package sun.jvm.hotspot.memory; 6.30 + 6.31 +import java.util.*; 6.32 +import sun.jvm.hotspot.debugger.*; 6.33 +import sun.jvm.hotspot.types.*; 6.34 +import sun.jvm.hotspot.runtime.*; 6.35 + 6.36 +public class BinaryTreeDictionary extends VMObject { 6.37 + static { 6.38 + VM.registerVMInitializedObserver(new Observer() { 6.39 + public void update(Observable o, Object data) { 6.40 + initialize(VM.getVM().getTypeDataBase()); 6.41 + } 6.42 + }); 6.43 + } 6.44 + 6.45 + private static synchronized void initialize(TypeDataBase db) { 6.46 + Type type = db.lookupType("BinaryTreeDictionary"); 6.47 + totalSizeField = type.getCIntegerField("_totalSize"); 6.48 + } 6.49 + 6.50 + // Fields 6.51 + private static CIntegerField totalSizeField; 6.52 + 6.53 + // Accessors 6.54 + public long size() { 6.55 + return totalSizeField.getValue(addr); 6.56 + } 6.57 + 6.58 + // Constructor 6.59 + public BinaryTreeDictionary(Address addr) { 6.60 + super(addr); 6.61 + } 6.62 +}
7.1 --- a/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java Tue Apr 01 16:14:18 2008 -0700 7.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java Fri May 09 08:55:13 2008 -0700 7.3 @@ -35,6 +35,20 @@ 7.4 public class CompactibleFreeListSpace extends CompactibleSpace { 7.5 private static AddressField collectorField; 7.6 7.7 + // for free size, three fields 7.8 + // FreeBlockDictionary* _dictionary; // ptr to dictionary for large size blocks 7.9 + // FreeList _indexedFreeList[IndexSetSize]; // indexed array for small size blocks 7.10 + // LinearAllocBlock _smallLinearAllocBlock; // small linear alloc in TLAB 7.11 + private static AddressField indexedFreeListField; 7.12 + private static AddressField dictionaryField; 7.13 + private static long smallLinearAllocBlockFieldOffset; 7.14 + private static long indexedFreeListSizeOf; 7.15 + 7.16 + private int heapWordSize; // 4 for 32bit, 8 for 64 bits 7.17 + private int IndexSetStart; // for small indexed list 7.18 + private int IndexSetSize; 7.19 + private int IndexSetStride; 7.20 + 7.21 static { 7.22 VM.registerVMInitializedObserver(new Observer() { 7.23 public void update(Observable o, Object data) { 7.24 @@ -51,10 +65,26 @@ 7.25 7.26 Type type = db.lookupType("CompactibleFreeListSpace"); 7.27 collectorField = type.getAddressField("_collector"); 7.28 + collectorField = type.getAddressField("_collector"); 7.29 + dictionaryField = type.getAddressField("_dictionary"); 7.30 + indexedFreeListField = type.getAddressField("_indexedFreeList[0]"); 7.31 + smallLinearAllocBlockFieldOffset = type.getField("_smallLinearAllocBlock").getOffset(); 7.32 } 7.33 7.34 public CompactibleFreeListSpace(Address addr) { 7.35 super(addr); 7.36 + if ( VM.getVM().isLP64() ) { 7.37 + heapWordSize = 8; 7.38 + IndexSetStart = 1; 7.39 + IndexSetStride = 1; 7.40 + } 7.41 + else { 7.42 + heapWordSize = 4; 7.43 + IndexSetStart = 2; 7.44 + IndexSetStride = 2; 7.45 + } 7.46 + 7.47 + IndexSetSize = 257; 7.48 } 7.49 7.50 // Accessing block offset table 7.51 @@ -62,9 +92,17 @@ 7.52 return (CMSCollector) VMObjectFactory.newObject( 7.53 CMSCollector.class, 7.54 collectorField.getValue(addr)); 7.55 - } 7.56 + } 7.57 + 7.58 + public long free0() { 7.59 + return capacity() - used0(); 7.60 + } 7.61 7.62 public long used() { 7.63 + return capacity() - free(); 7.64 + } 7.65 + 7.66 + public long used0() { 7.67 List regions = getLiveRegions(); 7.68 long usedSize = 0L; 7.69 for (Iterator itr = regions.iterator(); itr.hasNext();) { 7.70 @@ -75,11 +113,41 @@ 7.71 } 7.72 7.73 public long free() { 7.74 - return capacity() - used(); 7.75 - } 7.76 + // small chunks 7.77 + long size = 0; 7.78 + Address cur = addr.addOffsetTo( indexedFreeListField.getOffset() ); 7.79 + cur = cur.addOffsetTo(IndexSetStart*FreeList.sizeOf()); 7.80 + for (int i=IndexSetStart; i<IndexSetSize; i += IndexSetStride) { 7.81 + FreeList freeList = (FreeList) VMObjectFactory.newObject(FreeList.class, cur); 7.82 + size += i*freeList.count(); 7.83 + cur= cur.addOffsetTo(IndexSetStride*FreeList.sizeOf()); 7.84 + } 7.85 + 7.86 + // large block 7.87 + BinaryTreeDictionary bfbd = (BinaryTreeDictionary) VMObjectFactory.newObject(BinaryTreeDictionary.class, 7.88 + dictionaryField.getValue(addr)); 7.89 + size += bfbd.size(); 7.90 + 7.91 + 7.92 + // linear block in TLAB 7.93 + LinearAllocBlock lab = (LinearAllocBlock) VMObjectFactory.newObject(LinearAllocBlock.class, 7.94 + addr.addOffsetTo(smallLinearAllocBlockFieldOffset)); 7.95 + size += lab.word_size(); 7.96 + 7.97 + return size*heapWordSize; 7.98 + } 7.99 7.100 public void printOn(PrintStream tty) { 7.101 tty.print("free-list-space"); 7.102 + tty.print("[ " + bottom() + " , " + end() + " ) "); 7.103 + long cap = capacity(); 7.104 + long used_size = used(); 7.105 + long free_size = free(); 7.106 + int used_perc = (int)((double)used_size/cap*100); 7.107 + tty.print("space capacity = " + cap + " used(" + used_perc + "%)= " + used_size + " "); 7.108 + tty.print("free= " + free_size ); 7.109 + tty.print("\n"); 7.110 + 7.111 } 7.112 7.113 public Address skipBlockSizeUsingPrintezisBits(Address pos) {
8.1 --- a/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java Tue Apr 01 16:14:18 2008 -0700 8.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java Fri May 09 08:55:13 2008 -0700 8.3 @@ -96,9 +96,9 @@ 8.4 public void printOn(PrintStream tty) { 8.5 tty.print(" eden"); 8.6 eden().printOn(tty); 8.7 - tty.print(" from"); 8.8 + tty.print("\n from"); 8.9 from().printOn(tty); 8.10 - tty.print(" to "); 8.11 + tty.print("\n to "); 8.12 to().printOn(tty); 8.13 } 8.14 }
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java Fri May 09 08:55:13 2008 -0700 9.3 @@ -0,0 +1,72 @@ 9.4 +/* 9.5 + * @(#)FreeList.java 9.6 + * 9.7 + * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. 9.8 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 9.9 + * 9.10 + * This code is free software; you can redistribute it and/or modify it 9.11 + * under the terms of the GNU General Public License version 2 only, as 9.12 + * published by the Free Software Foundation. 9.13 + * 9.14 + * This code is distributed in the hope that it will be useful, but WITHOUT 9.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 9.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 9.17 + * version 2 for more details (a copy is included in the LICENSE file that 9.18 + * accompanied this code). 9.19 + * 9.20 + * You should have received a copy of the GNU General Public License version 9.21 + * 2 along with this work; if not, write to the Free Software Foundation, 9.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 9.23 + * 9.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 9.25 + * CA 95054 USA or visit www.sun.com if you need additional information or 9.26 + * have any questions. 9.27 + * 9.28 + */ 9.29 + 9.30 +package sun.jvm.hotspot.memory; 9.31 + 9.32 +import java.util.*; 9.33 +import sun.jvm.hotspot.debugger.*; 9.34 +import sun.jvm.hotspot.types.*; 9.35 +import sun.jvm.hotspot.runtime.*; 9.36 + 9.37 +public class FreeList extends VMObject { 9.38 + static { 9.39 + VM.registerVMInitializedObserver(new Observer() { 9.40 + public void update(Observable o, Object data) { 9.41 + initialize(VM.getVM().getTypeDataBase()); 9.42 + } 9.43 + }); 9.44 + } 9.45 + 9.46 + private static synchronized void initialize(TypeDataBase db) { 9.47 + Type type = db.lookupType("FreeList"); 9.48 + sizeField = type.getCIntegerField("_size"); 9.49 + countField = type.getCIntegerField("_count"); 9.50 + headerSize = type.getSize(); 9.51 + } 9.52 + 9.53 + // Fields 9.54 + private static CIntegerField sizeField; 9.55 + private static CIntegerField countField; 9.56 + private static long headerSize; 9.57 + 9.58 + //Constructor 9.59 + public FreeList(Address address) { 9.60 + super(address); 9.61 + } 9.62 + 9.63 + // Accessors 9.64 + public long size() { 9.65 + return sizeField.getValue(addr); 9.66 + } 9.67 + 9.68 + public long count() { 9.69 + return countField.getValue(addr); 9.70 + } 9.71 + 9.72 + public static long sizeOf() { 9.73 + return headerSize; 9.74 + } 9.75 +}
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java Fri May 09 08:55:13 2008 -0700 10.3 @@ -0,0 +1,59 @@ 10.4 +/* 10.5 + * @(#)BinaryTreeDictionary.java 10.6 + * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. 10.7 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 10.8 + * 10.9 + * This code is free software; you can redistribute it and/or modify it 10.10 + * under the terms of the GNU General Public License version 2 only, as 10.11 + * published by the Free Software Foundation. 10.12 + * 10.13 + * This code is distributed in the hope that it will be useful, but WITHOUT 10.14 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10.15 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 10.16 + * version 2 for more details (a copy is included in the LICENSE file that 10.17 + * accompanied this code). 10.18 + * 10.19 + * You should have received a copy of the GNU General Public License version 10.20 + * 2 along with this work; if not, write to the Free Software Foundation, 10.21 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 10.22 + * 10.23 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 10.24 + * CA 95054 USA or visit www.sun.com if you need additional information or 10.25 + * have any questions. 10.26 + * 10.27 + */ 10.28 + 10.29 +package sun.jvm.hotspot.memory; 10.30 + 10.31 +import java.util.*; 10.32 +import sun.jvm.hotspot.debugger.*; 10.33 +import sun.jvm.hotspot.types.*; 10.34 +import sun.jvm.hotspot.runtime.*; 10.35 + 10.36 +public class LinearAllocBlock extends VMObject { 10.37 + static { 10.38 + VM.registerVMInitializedObserver(new Observer() { 10.39 + public void update(Observable o, Object data) { 10.40 + initialize(VM.getVM().getTypeDataBase()); 10.41 + } 10.42 + }); 10.43 + } 10.44 + 10.45 + private static synchronized void initialize(TypeDataBase db) { 10.46 + Type type = db.lookupType("LinearAllocBlock"); 10.47 + word_sizeField= type.getCIntegerField("_word_size"); 10.48 + } 10.49 + 10.50 + // Fields 10.51 + private static CIntegerField word_sizeField; 10.52 + 10.53 + // Accessors 10.54 + public long word_size() { 10.55 + return word_sizeField.getValue(addr); 10.56 + } 10.57 + 10.58 + // Constructor 10.59 + public LinearAllocBlock(Address addr) { 10.60 + super(addr); 10.61 + } 10.62 +}
11.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java Tue Apr 01 16:14:18 2008 -0700 11.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java Fri May 09 08:55:13 2008 -0700 11.3 @@ -648,6 +648,6 @@ 11.4 System.exit(0); 11.5 } 11.6 }); 11.7 - frame.show(); 11.8 + frame.setVisible(true); 11.9 } 11.10 }
12.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java Tue Apr 01 16:14:18 2008 -0700 12.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java Fri May 09 08:55:13 2008 -0700 12.3 @@ -220,7 +220,7 @@ 12.4 } 12.5 }); 12.6 frame.setSize(500, 500); 12.7 - frame.show(); 12.8 + frame.setVisible(true); 12.9 panel.requestFocus(); 12.10 } 12.11 }
13.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java Tue Apr 01 16:14:18 2008 -0700 13.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java Fri May 09 08:55:13 2008 -0700 13.3 @@ -226,7 +226,7 @@ 13.4 } 13.5 }); 13.6 frame.setSize(500, 500); 13.7 - frame.show(); 13.8 + frame.setVisible(true); 13.9 panel.requestFocus(); 13.10 } 13.11 }
14.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java Tue Apr 01 16:14:18 2008 -0700 14.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java Fri May 09 08:55:13 2008 -0700 14.3 @@ -424,7 +424,7 @@ 14.4 } 14.5 }); 14.6 frame.getContentPane().add(hpsb); 14.7 - frame.show(); 14.8 + frame.setVisible(true); 14.9 } 14.10 14.11 }
15.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java Tue Apr 01 16:14:18 2008 -0700 15.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java Fri May 09 08:55:13 2008 -0700 15.3 @@ -43,7 +43,7 @@ 15.4 public void setVisible(boolean visible) { frame.setVisible(visible); } 15.5 public void setSize(int x, int y) { frame.setSize(x, y); } 15.6 public void pack() { frame.pack(); } 15.7 - public void show() { frame.show(); } 15.8 + public void show() { frame.setVisible(true); } 15.9 public void dispose() { frame.dispose(); } 15.10 public void setBackground(Color color) { frame.setBackground(color); } 15.11 public void setResizable(boolean resizable) { frame.setResizable(resizable); }
16.1 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java Tue Apr 01 16:14:18 2008 -0700 16.2 +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java Fri May 09 08:55:13 2008 -0700 16.3 @@ -477,9 +477,9 @@ 16.4 static class TreeTableTextField extends JTextField { 16.5 public int offset; 16.6 16.7 - public void reshape(int x, int y, int w, int h) { 16.8 + public void setBounds(int x, int y, int w, int h) { 16.9 int newX = Math.max(x, offset); 16.10 - super.reshape(newX, y, w - (newX - x), h); 16.11 + super.setBounds(newX, y, w - (newX - x), h); 16.12 } 16.13 } 16.14
17.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp Tue Apr 01 16:14:18 2008 -0700 17.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp Fri May 09 08:55:13 2008 -0700 17.3 @@ -130,6 +130,7 @@ 17.4 const size_t MIN_TREE_CHUNK_SIZE = sizeof(TreeChunk)/HeapWordSize; 17.5 17.6 class BinaryTreeDictionary: public FreeBlockDictionary { 17.7 + friend class VMStructs; 17.8 bool _splay; 17.9 size_t _totalSize; 17.10 size_t _totalFreeBlocks;
18.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp Tue Apr 01 16:14:18 2008 -0700 18.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp Fri May 09 08:55:13 2008 -0700 18.3 @@ -38,6 +38,7 @@ 18.4 18.5 class FreeList VALUE_OBJ_CLASS_SPEC { 18.6 friend class CompactibleFreeListSpace; 18.7 + friend class VMStructs; 18.8 friend class printTreeCensusClosure; 18.9 FreeChunk* _head; // List of free chunks 18.10 FreeChunk* _tail; // Tail of list of free chunks
19.1 --- a/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp Tue Apr 01 16:14:18 2008 -0700 19.2 +++ b/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp Fri May 09 08:55:13 2008 -0700 19.3 @@ -38,7 +38,15 @@ 19.4 static_field(ConcurrentMarkSweepThread, _collector, CMSCollector*) \ 19.5 nonstatic_field(FreeChunk, _next, FreeChunk*) \ 19.6 nonstatic_field(FreeChunk, _prev, FreeChunk*) \ 19.7 - nonstatic_field(FreeChunk, _size, size_t) 19.8 + nonstatic_field(FreeChunk, _size, size_t) \ 19.9 + nonstatic_field(LinearAllocBlock, _word_size, size_t) \ 19.10 + nonstatic_field(FreeList, _size, size_t) \ 19.11 + nonstatic_field(FreeList, _count, ssize_t) \ 19.12 + nonstatic_field(BinaryTreeDictionary, _totalSize, size_t) \ 19.13 + nonstatic_field(CompactibleFreeListSpace, _dictionary, FreeBlockDictionary*) \ 19.14 + nonstatic_field(CompactibleFreeListSpace, _indexedFreeList[0], FreeList) \ 19.15 + nonstatic_field(CompactibleFreeListSpace, _smallLinearAllocBlock, LinearAllocBlock) 19.16 + 19.17 19.18 #define VM_TYPES_CMS(declare_type, \ 19.19 declare_toplevel_type) \ 19.20 @@ -57,7 +65,14 @@ 19.21 declare_toplevel_type(SurrogateLockerThread*) \ 19.22 declare_toplevel_type(CompactibleFreeListSpace*) \ 19.23 declare_toplevel_type(CMSCollector*) \ 19.24 - declare_toplevel_type(FreeChunk*) 19.25 + declare_toplevel_type(FreeChunk*) \ 19.26 + declare_toplevel_type(BinaryTreeDictionary*) \ 19.27 + declare_toplevel_type(FreeBlockDictionary*) \ 19.28 + declare_toplevel_type(FreeList*) \ 19.29 + declare_toplevel_type(FreeList) \ 19.30 + declare_toplevel_type(LinearAllocBlock) \ 19.31 + declare_toplevel_type(FreeBlockDictionary) \ 19.32 + declare_type(BinaryTreeDictionary, FreeBlockDictionary) 19.33 19.34 #define VM_INT_CONSTANTS_CMS(declare_constant) \ 19.35 declare_constant(Generation::ConcurrentMarkSweep) \
20.1 --- a/src/share/vm/runtime/vmStructs.cpp Tue Apr 01 16:14:18 2008 -0700 20.2 +++ b/src/share/vm/runtime/vmStructs.cpp Fri May 09 08:55:13 2008 -0700 20.3 @@ -893,6 +893,7 @@ 20.4 /*******************************************************************/ \ 20.5 \ 20.6 declare_unsigned_integer_type(size_t) \ 20.7 + declare_integer_type(ssize_t) \ 20.8 declare_unsigned_integer_type(const size_t) \ 20.9 declare_integer_type(intx) \ 20.10 declare_integer_type(intptr_t) \