From daniel.daugherty at oracle.com Tue Jan 4 00:02:43 2011 From: daniel.daugherty at oracle.com (Daniel D. Daugherty) Date: Mon, 03 Jan 2011 17:02:43 -0700 Subject: request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent In-Reply-To: References: Message-ID: <4D2263A3.8030603@oracle.com> On 12/30/2010 4:03 PM, Keith McGuigan wrote: > My last request for a code review this year, I promise! Happy New Year! > > This fix adds the missing JVMTI GC callbacks for CMS: > > Webrev: http://cr.openjdk.java.net/~kamg/6458402/webrev.03/ Very nicely done. You should ping Alan B. to see if he has time to sanity check the JVM/TI tap map stuff... src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp No comments. src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp No comments. src/share/vm/gc_implementation/g1/vm_operations_g1.cpp No comments. src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp No comments. src/share/vm/gc_implementation/shared/vmGCOperations.cpp No comments. src/share/vm/gc_implementation/shared/vmGCOperations.hpp No comments. src/share/vm/memory/genCollectedHeap.cpp No comments. src/share/vm/prims/jvmtiExport.cpp No Comments. src/share/vm/prims/jvmtiExport.hpp There's no longer any guidance about how GC should use the the JvmtiGCMarker. Maybe such guidance is no longer needed. Update: no such guidance is needed anymore. src/share/vm/prims/jvmtiImpl.cpp No comments. src/share/vm/prims/jvmtiImpl.hpp No comments. src/share/vm/prims/jvmtiTagMap.cpp Lines 561, 564 - looks like just a whitespace change, but I wanted to be sure. Probably shouldn't clean up whitespace when you have substantive changes in the same file; it confused me and it might confuse other folks. No other comments other than nice job with the tag map changes. src/share/vm/prims/jvmtiTagMap.hpp No comments. src/share/vm/runtime/globals.hpp Since this option was advertised in a JDK6-Update release notes, we'll need to figure out if something needs to be said in the JDK6-Update release notes when this version of HSX-20 get there. src/share/vm/runtime/jniHandles.cpp JVM/TI tap maps no longer use weak references so this change caught me by surprise. I'm guessing that you were just looking for a place to "hang" the JvmtiTagMap::weak_oops_do() call. If you're going to keep the call here, you should probably add a comment so other readers aren't confused... From suenaga.yasumasa at oss.ntt.co.jp Tue Jan 4 04:11:11 2011 From: suenaga.yasumasa at oss.ntt.co.jp (Yasumasa Suenaga) Date: Tue, 04 Jan 2011 13:11:11 +0900 Subject: jstat LGCC column shows Message-ID: <4D229DDF.1060007@oss.ntt.co.jp> Hi, I ran SPECjvm2008 with OpenJDK6 provided by Fedora14 and Ubuntu 10.10 . I got following messages when I attached jstat to that VM with "-gccause" option: ------------ root at ubuntu10:~# jstat -gccause 8411 500 S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC 0.00 0.00 12.11 12.65 31.36 1 0.005 2 0.037 0.042 System.gc() No GC 0.00 0.00 12.11 12.65 31.36 1 0.005 2 0.037 0.042 System.gc() No GC -- snip -- 0.00 0.00 76.81 12.65 31.58 1 0.005 2 0.037 0.042 System.gc() No GC 42.20 0.00 0.00 12.65 33.10 4 0.011 2 0.037 0.047 unknown GCCause No GC 91.06 0.00 0.00 15.12 34.10 10 0.019 2 0.037 0.056 unknown GCCause No GC -- snip -- ------------ "LGCC" column shows "unknown GCCause". I want to get "REAL" last gccause (I want to know what happened in VM, relating to GC). (In this case, I guess that LGCC shows "Allocation Failure".) I found the comment in constructor of VM_GC_Operation class as following: (OpenJDK7 (HS20) and OpenJDK6(HS19) are similar.) ------------ // A subclass constructor will likely overwrite the following _gc_cause = GCCause::_no_cause_specified; ------------ I checked constructor of subclass of VM_GC_Operation, and following classes do not initialize "_gc_cause" member: - VM_HeapDumper - VM_GC_HeapInspection - VM_GenCollectForAllocation - VM_G1OperationWithAllocRequest - VM_ParallelGCFailedAllocation - VM_ParallelGCFailedPermanentAllocation I think that we should initialize "_gc_cause" in constructor of these classes. Best regards, From Alan.Bateman at oracle.com Tue Jan 4 16:11:07 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Tue, 04 Jan 2011 16:11:07 +0000 Subject: request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent In-Reply-To: <4D2263A3.8030603@oracle.com> References: <4D2263A3.8030603@oracle.com> Message-ID: <4D23469B.50805@oracle.com> Daniel D. Daugherty wrote: > : > > >> >> This fix adds the missing JVMTI GC callbacks for CMS: >> >> Webrev: http://cr.openjdk.java.net/~kamg/6458402/webrev.03/ > > Very nicely done. You should ping Alan B. to see if he has > time to sanity check the JVM/TI tap map stuff... I've just scanned it (haven't had time to do detailed review yet) but it looks pretty good to me. The only thing I notice is one or two stale comments. For example the hashmap() function no longer has an oop as argument but is still commented as "return the appropriate hashmap for a given object". I also wonder about the rehashing and whether it might be cheaper to re-hash to same slot rather than accumulating the moved entries in the delayed_add list. Keith may have measured this already. -Alan. From y.s.ramakrishna at oracle.com Tue Jan 4 17:27:19 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Tue, 04 Jan 2011 09:27:19 -0800 Subject: High Par New collection times In-Reply-To: <329892.52364.qm@web111103.mail.gq1.yahoo.com> References: <329892.52364.qm@web111103.mail.gq1.yahoo.com> Message-ID: <4D235877.4050900@oracle.com> Don't know which version of the JVM you are using, but the following may be relevant:- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6631166 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6999988 The latter is still under investigation. -- ramki On 01/04/11 08:02, Erwin wrote: > Hello, > >>From time to time, we would get a high collection time for ParNew and it would indicate promotion failed. This would then show CPU starvation message on the SystemOut.log. We're using Solaris10 and WAS 7.0.0.9 NDE. > > Below is our JVM arguments. Any help would be appreciated. > -server -Xmn1000m -XX:PermSize=512m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -DUseSunHttpHandler=true -Djavax.xml.soap.MessageFactory=weblogic.xml.saaj.MessageFactoryImpl -Doracle.jdbc.V8Compatible=true -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSClassUnloadingEnabled -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:-TraceClassUnloading -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:MaxPermSize=694m -XX:+DisableExplicitGC -XX:+CMSParallelRemarkEnabled > > {Heap before GC invocations=12800 (full 1163): > par new generation total 921600K, used 906365K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 100% used [0xfffffffdc0000000, 0xfffffffdf2000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf2000000, 0xfffffffdf751f498, 0xfffffffdf8400000) > to space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > concurrent mark-sweep generation total 5136384K, used 2809586K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 249119K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > 1598527.649: [GC 1598527.649: [ParNew (promotion failed): 906365K->921600K(921600K), 0.6504370 secs]1598528.300: [CMS: 2969343K->2818470K(5136384K), 30.8057620 secs] 3715951K->2818470K(6057984K), [CMS Perm : 249119K->248229K(524288K)], 31.4567688 secs] [Times: user=33.09 sys=0.26, real=31.46 secs] > Heap after GC invocations=12801 (full 1164): > par new generation total 921600K, used 0K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 0% used [0xfffffffdc0000000, 0xfffffffdc0000000, 0xfffffffdf2000000) > from space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > to space 102400K, 0% used [0xfffffffdf2000000, 0xfffffffdf2000000, 0xfffffffdf8400000) > concurrent mark-sweep generation total 5136384K, used 2818470K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 248229K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > } > > Other times are fine > {Heap before GC invocations=12798 (full 1163): > par new generation total 921600K, used 921600K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 100% used [0xfffffffdc0000000, 0xfffffffdf2000000, 0xfffffffdf2000000) > from space 102400K, 100% used [0xfffffffdf2000000, 0xfffffffdf8400000, 0xfffffffdf8400000) > to space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > concurrent mark-sweep generation total 5136384K, used 2677208K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 248923K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > 1598495.024: [GC 1598495.024: [ParNew: 921600K->88036K(921600K), 0.2590699 secs] 3598808K->2871275K(6057984K), 0.2594312 secs] [Times: user=2.73 sys=0.10, real=0.26 secs] > Heap after GC invocations=12799 (full 1163): > par new generation total 921600K, used 88036K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 0% used [0xfffffffdc0000000, 0xfffffffdc0000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf8400000, 0xfffffffdfd9f9168, 0xfffffffdfe800000) > to space 102400K, 0% used [0xfffffffdf2000000, 0xfffffffdf2000000, 0xfffffffdf8400000) > concurrent mark-sweep generation total 5136384K, used 2783239K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 248923K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > } > Total time for which application threads were stopped: 0.2631313 seconds > Total time for which application threads were stopped: 0.0089191 seconds > Total time for which application threads were stopped: 0.0065184 seconds > Total time for which application threads were stopped: 0.0022136 seconds > Total time for which application threads were stopped: 0.0072144 seconds > Total time for which application threads were stopped: 0.0093864 seconds > Total time for which application threads were stopped: 0.0022413 seconds > Total time for which application threads were stopped: 0.0022476 seconds > {Heap before GC invocations=12799 (full 1163): > par new generation total 921600K, used 907236K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 100% used [0xfffffffdc0000000, 0xfffffffdf2000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf8400000, 0xfffffffdfd9f9168, 0xfffffffdfe800000) > to space 102400K, 0% used [0xfffffffdf2000000, 0xfffffffdf2000000, 0xfffffffdf8400000) > concurrent mark-sweep generation total 5136384K, used 2783239K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 249075K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > 1598514.042: [GC 1598514.043: [ParNew: 907236K->87165K(921600K), 0.1946563 secs] 3690475K->2896751K(6057984K), 0.1950345 secs] [Times: user=1.55 sys=0.07, real=0.20 secs] > Heap after GC invocations=12800 (full 1163): > par new generation total 921600K, used 87165K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 0% used [0xfffffffdc0000000, 0xfffffffdc0000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf2000000, 0xfffffffdf751f498, 0xfffffffdf8400000) > to space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > concurrent mark-sweep generation total 5136384K, used 2809586K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 249075K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > } > Total time for which application threads were stopped: 0.2034239 seconds > Total time for which application threads were stopped: 0.0075922 seconds > Total time for which application threads were stopped: 0.0022152 seconds > > Thanks, > Erwin > > > > _______________________________________________ > hotspot-gc-use mailing list > hotspot-gc-use at openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From jon.masamitsu at oracle.com Tue Jan 4 18:41:54 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Tue, 04 Jan 2011 10:41:54 -0800 Subject: High Par New collection times In-Reply-To: <329892.52364.qm@web111103.mail.gq1.yahoo.com> References: <329892.52364.qm@web111103.mail.gq1.yahoo.com> Message-ID: <4D2369F2.30306@oracle.com> Erwin, Are you asking why this time is so long? [Times: user=33.09 sys=0.26, real=31.46 secs] Jon On 01/04/11 08:02, Erwin wrote: > Hello, > > > From time to time, we would get a high collection time for ParNew and it would indicate promotion failed. This would then show CPU starvation message on the SystemOut.log. We're using Solaris10 and WAS 7.0.0.9 NDE. > > Below is our JVM arguments. Any help would be appreciated. > -server -Xmn1000m -XX:PermSize=512m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -DUseSunHttpHandler=true -Djavax.xml.soap.MessageFactory=weblogic.xml.saaj.MessageFactoryImpl -Doracle.jdbc.V8Compatible=true -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSClassUnloadingEnabled -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:-TraceClassUnloading -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:MaxPermSize=694m -XX:+DisableExplicitGC -XX:+CMSParallelRemarkEnabled > > {Heap before GC invocations=12800 (full 1163): > par new generation total 921600K, used 906365K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 100% used [0xfffffffdc0000000, 0xfffffffdf2000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf2000000, 0xfffffffdf751f498, 0xfffffffdf8400000) > to space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > concurrent mark-sweep generation total 5136384K, used 2809586K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 249119K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > 1598527.649: [GC 1598527.649: [ParNew (promotion failed): 906365K->921600K(921600K), 0.6504370 secs]1598528.300: [CMS: 2969343K->2818470K(5136384K), 30.8057620 secs] 3715951K->2818470K(6057984K), [CMS Perm : 249119K->248229K(524288K)], 31.4567688 secs] [Times: user=33.09 sys=0.26, real=31.46 secs] > Heap after GC invocations=12801 (full 1164): > par new generation total 921600K, used 0K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 0% used [0xfffffffdc0000000, 0xfffffffdc0000000, 0xfffffffdf2000000) > from space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > to space 102400K, 0% used [0xfffffffdf2000000, 0xfffffffdf2000000, 0xfffffffdf8400000) > concurrent mark-sweep generation total 5136384K, used 2818470K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 248229K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > } > > Other times are fine > {Heap before GC invocations=12798 (full 1163): > par new generation total 921600K, used 921600K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 100% used [0xfffffffdc0000000, 0xfffffffdf2000000, 0xfffffffdf2000000) > from space 102400K, 100% used [0xfffffffdf2000000, 0xfffffffdf8400000, 0xfffffffdf8400000) > to space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > concurrent mark-sweep generation total 5136384K, used 2677208K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 248923K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > 1598495.024: [GC 1598495.024: [ParNew: 921600K->88036K(921600K), 0.2590699 secs] 3598808K->2871275K(6057984K), 0.2594312 secs] [Times: user=2.73 sys=0.10, real=0.26 secs] > Heap after GC invocations=12799 (full 1163): > par new generation total 921600K, used 88036K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 0% used [0xfffffffdc0000000, 0xfffffffdc0000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf8400000, 0xfffffffdfd9f9168, 0xfffffffdfe800000) > to space 102400K, 0% used [0xfffffffdf2000000, 0xfffffffdf2000000, 0xfffffffdf8400000) > concurrent mark-sweep generation total 5136384K, used 2783239K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 248923K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > } > Total time for which application threads were stopped: 0.2631313 seconds > Total time for which application threads were stopped: 0.0089191 seconds > Total time for which application threads were stopped: 0.0065184 seconds > Total time for which application threads were stopped: 0.0022136 seconds > Total time for which application threads were stopped: 0.0072144 seconds > Total time for which application threads were stopped: 0.0093864 seconds > Total time for which application threads were stopped: 0.0022413 seconds > Total time for which application threads were stopped: 0.0022476 seconds > {Heap before GC invocations=12799 (full 1163): > par new generation total 921600K, used 907236K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 100% used [0xfffffffdc0000000, 0xfffffffdf2000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf8400000, 0xfffffffdfd9f9168, 0xfffffffdfe800000) > to space 102400K, 0% used [0xfffffffdf2000000, 0xfffffffdf2000000, 0xfffffffdf8400000) > concurrent mark-sweep generation total 5136384K, used 2783239K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 249075K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > 1598514.042: [GC 1598514.043: [ParNew: 907236K->87165K(921600K), 0.1946563 secs] 3690475K->2896751K(6057984K), 0.1950345 secs] [Times: user=1.55 sys=0.07, real=0.20 secs] > Heap after GC invocations=12800 (full 1163): > par new generation total 921600K, used 87165K [0xfffffffdc0000000, 0xfffffffdfe800000, 0xfffffffdfe800000) > eden space 819200K, 0% used [0xfffffffdc0000000, 0xfffffffdc0000000, 0xfffffffdf2000000) > from space 102400K, 85% used [0xfffffffdf2000000, 0xfffffffdf751f498, 0xfffffffdf8400000) > to space 102400K, 0% used [0xfffffffdf8400000, 0xfffffffdf8400000, 0xfffffffdfe800000) > concurrent mark-sweep generation total 5136384K, used 2809586K [0xfffffffdfe800000, 0xffffffff38000000, 0xffffffff38000000) > concurrent-mark-sweep perm gen total 524288K, used 249075K [0xffffffff38000000, 0xffffffff58000000, 0xffffffff63800000) > } > Total time for which application threads were stopped: 0.2034239 seconds > Total time for which application threads were stopped: 0.0075922 seconds > Total time for which application threads were stopped: 0.0022152 seconds > > Thanks, > Erwin > > > > _______________________________________________ > hotspot-gc-use mailing list > hotspot-gc-use at openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From keith.mcguigan at oracle.com Tue Jan 4 19:48:44 2011 From: keith.mcguigan at oracle.com (Keith McGuigan) Date: Tue, 4 Jan 2011 14:48:44 -0500 Subject: request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent In-Reply-To: <4D23469B.50805@oracle.com> References: <4D2263A3.8030603@oracle.com> <4D23469B.50805@oracle.com> Message-ID: On Jan 4, 2011, at 11:11 AM, Alan Bateman wrote: > Daniel D. Daugherty wrote: >> : >> >> >>> >>> This fix adds the missing JVMTI GC callbacks for CMS: >>> >>> Webrev: http://cr.openjdk.java.net/~kamg/6458402/webrev.03/ >> >> Very nicely done. You should ping Alan B. to see if he has >> time to sanity check the JVM/TI tap map stuff... > I've just scanned it (haven't had time to do detailed review yet) > but it looks pretty good to me. The only thing I notice is one or > two stale comments. For example the hashmap() function no longer has > an oop as argument but is still commented as "return the appropriate > hashmap for a given object". I also wonder about the rehashing and > whether it might be cheaper to re-hash to same slot rather than > accumulating the moved entries in the delayed_add list. Keith may > have measured this already. I'll find and fix those comments. Can you expand upon what you mean by "re-hash to the same slot"? I don't understand how that would work. -- - Keith From jon.masamitsu at oracle.com Wed Jan 5 15:55:38 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Wed, 05 Jan 2011 07:55:38 -0800 Subject: hotspot-gc-dev post from greggdw@westinghouse.com Message-ID: <4D24947A.3090005@oracle.com> I'm forwarding this message from Gregg by hand (as moderator I had trouble approving it in the usual way). -------------- next part -------------- An embedded message was scrubbed... From: "Gregg, Donald W" Subject: constructor for class LinearLeastSquareFit does not initialize some class members Date: Tue, 4 Jan 2011 09:38:05 -0500 Size: 12510 URL: From ycraig at cysystems.com Wed Jan 5 16:37:50 2011 From: ycraig at cysystems.com (craig yeldell) Date: Wed, 5 Jan 2011 11:37:50 -0500 Subject: CPU differences and CMS GC performance Message-ID: I have a production environment that consists of two different hardware configurations. We have just replaced half our environment with new servers that have more RAM and different CPU's. We left the GC params the same, the GC behavior has been quite surprising. I expected to see faster collections on the New and CMS due to the raw cpu test results of the Nehalem, and this held true. However I also found fewer New collections, and increased CMS collections. In a nutshell, I assumed upgrading the CPU alone without touching the GC args would result in improved GC performance. Java info: Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode) -server -Xmx2500m -Xms2500m -Dsun.rmi.dgc.client.gcInterval=3600000 - Dsun.rmi.dgc.server.gcInterval=3600000 -Xss256k -XX:+DisableExplicitGC -XX:PermSize=384m -XX:MaxPermSize=384m -XX:MaxNewSize=888m - XX:NewSize=888m -XX:ParallelGCThreads=6 -verbose:gc -Xloggc:vm01.gc - XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX: +HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX: +CMSClassUnloadingEnabled -XX:SurvivorRatio=4 -XX:+UseTLAB -XX: +UseParNewGC -XX:+UseBiasedLocking -XX:TargetSurvivorRatio=75 -XX: +UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 NOTE: Each server has 4 jvm's running and all vm's in the environment are equally load balanced. CPU info: OLD 16GB CPU frequency: 3.003 GHz (Xeon) Number of CPUs: 4 Number of cores: 8 Number of threads: 16 NEW 32GB CPU frequency: 2.533 GHz (Xeon E5540 Nehalem) Number of CPUs: 2 Number of cores: 8 Number of threads: 16 Example GC snippet: Old server: 2011-01-04T18:24:02.073-0500: 316390.125: [CMS-concurrent-reset: 0.061/0.061 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] 2011-01-04T18:24:12.890-0500: 316400.941: [GC 316400.942: [ParNew: 690252K->93718K(757760K), 0.1300730 secs] 1968696K->1372788K (2408448K), 0.1308690 secs] [Times: user=0.66 sys=0.00, real=0.13 secs] 2011-01-04T18:24:50.647-0500: 316438.698: [GC 316438.699: [ParNew: 699926K->74785K(757760K), 0.1296920 secs] 1978996K->1355277K (2408448K), 0.1304530 secs] [Times: user=0.61 sys=0.00, real=0.13 secs] 2011-01-04T18:25:17.854-0500: 316465.905: [GC 316465.906: [ParNew: 680928K->86498K(757760K), 0.1505500 secs] 1961420K->1369830K (2408448K), 0.1513450 secs] [Times: user=0.71 sys=0.00, real=0.15 secs] 2011-01-04T18:25:50.762-0500: 316498.814: [GC 316498.814: [ParNew: 692706K->69120K(757760K), 0.1385690 secs] 1976038K->1352581K (2408448K), 0.1393620 secs] [Times: user=0.63 sys=0.00, real=0.14 secs] 2011-01-04T18:26:22.644-0500: 316530.695: [GC 316530.696: [ParNew: 675328K->86476K(757760K), 0.1493580 secs] 1958789K->1372863K (2408448K), 0.1501220 secs] [Times: user=0.66 sys=0.00, real=0.15 secs] 2011-01-04T18:27:01.951-0500: 316570.003: [GC 316570.003: [ParNew: 692684K->70259K(757760K), 0.1250090 secs] 1979071K->1357514K (2408448K), 0.1257610 secs] [Times: user=0.62 sys=0.00, real=0.13 secs] 2011-01-04T18:27:28.542-0500: 316596.594: [GC 316596.594: [ParNew: 676467K->88180K(757760K), 0.1030450 secs] 1963722K->1375664K (2408448K), 0.1038090 secs] [Times: user=0.54 sys=0.00, real=0.10 secs] 2011-01-04T18:27:52.200-0500: 316620.251: [GC 316620.252: [ParNew: 694388K->64015K(757760K), 0.1551250 secs] 1981872K->1351774K (2408448K), 0.1560860 secs] [Times: user=0.79 sys=0.00, real=0.15 secs] 2011-01-04T18:28:07.789-0500: 316635.841: [GC 316635.841: [ParNew: 670223K->94609K(757760K), 0.1321720 secs] 1957982K->1385077K (2408448K), 0.1329350 secs] [Times: user=0.65 sys=0.01, real=0.13 secs] 2011-01-04T18:28:38.020-0500: 316666.071: [GC 316666.072: [ParNew: 700817K->64339K(757760K), 0.1169430 secs] 1991285K->1358764K (2408448K), 0.1177070 secs] [Times: user=0.59 sys=0.00, real=0.12 secs] 2011-01-04T18:29:13.319-0500: 316701.370: [GC 316701.371: [ParNew: 670547K->75587K(757760K), 0.1352400 secs] 1964972K->1370278K (2408448K), 0.1360140 secs] [Times: user=0.63 sys=0.00, real=0.13 secs] 2011-01-04T18:29:46.586-0500: 316734.637: [GC 316734.638: [ParNew: 681795K->67573K(757760K), 0.1257050 secs] 1976486K->1364337K (2408448K), 0.1265250 secs] [Times: user=0.56 sys=0.01, real=0.12 secs] 2011-01-04T18:30:31.525-0500: 316779.577: [GC 316779.578: [ParNew: 673781K->65516K(757760K), 0.1143930 secs] 1970545K->1363488K (2408448K), 0.1154980 secs] [Times: user=0.54 sys=0.00, real=0.12 secs] 2011-01-04T18:30:56.159-0500: 316804.211: [GC 316804.211: [ParNew: 671724K->54331K(757760K), 0.1067750 secs] 1969696K->1353537K (2408448K), 0.1075690 secs] [Times: user=0.53 sys=0.00, real=0.11 secs] 2011-01-04T18:32:01.256-0500: 316869.308: [GC 316869.308: [ParNew: 660539K->66703K(757760K), 0.1036880 secs] 1959745K->1367053K (2408448K), 0.1044590 secs] [Times: user=0.49 sys=0.00, real=0.11 secs] 2011-01-04T18:32:31.967-0500: 316900.019: [GC 316900.019: [ParNew: 672911K->54742K(757760K), 0.1121020 secs] 1973261K->1355232K (2408448K), 0.1128580 secs] [Times: user=0.51 sys=0.00, real=0.11 secs] 2011-01-04T18:33:05.187-0500: 316933.239: [GC 316933.239: [ParNew: 660950K->66592K(757760K), 0.0990360 secs] 1961440K->1368889K (2408448K), 0.0998210 secs] [Times: user=0.49 sys=0.00, real=0.10 secs] 2011-01-04T18:33:38.693-0500: 316966.745: [GC 316966.745: [ParNew: 672800K->57860K(757760K), 0.1132210 secs] 1975097K->1361914K (2408448K), 0.1139990 secs] [Times: user=0.53 sys=0.01, real=0.12 secs] 2011-01-04T18:34:33.087-0500: 317021.139: [GC 317021.139: [ParNew: 664068K->74055K(757760K), 0.1268070 secs] 1968122K->1379190K (2408448K), 0.1275670 secs] [Times: user=0.52 sys=0.00, real=0.12 secs] 2011-01-04T18:34:59.371-0500: 317047.423: [GC 317047.423: [ParNew: 680263K->67454K(757760K), 0.1354760 secs] 1985398K->1374886K (2408448K), 0.1363060 secs] [Times: user=0.61 sys=0.01, real=0.14 secs] 2011-01-04T18:35:23.757-0500: 317071.809: [GC 317071.809: [ParNew: 673662K->78394K(757760K), 0.1624010 secs] 1981094K->1385967K (2408448K), 0.1632150 secs] [Times: user=0.78 sys=0.00, real=0.17 secs] 2011-01-04T18:35:45.117-0500: 317093.169: [GC 317093.169: [ParNew: 684602K->66073K(757760K), 0.1161380 secs] 1992175K->1373969K (2408448K), 0.1170380 secs] [Times: user=0.60 sys=0.00, real=0.12 secs] 2011-01-04T18:36:29.794-0500: 317137.845: [GC 317137.846: [ParNew: 672281K->97964K(757760K), 0.1333770 secs] 1980177K->1406249K (2408448K), 0.1341740 secs] [Times: user=0.68 sys=0.00, real=0.13 secs] 2011-01-04T18:36:58.710-0500: 317166.762: [GC 317166.762: [ParNew: 704172K->76194K(757760K), 0.1261530 secs] 2012457K->1385682K (2408448K), 0.1269720 secs] [Times: user=0.64 sys=0.00, real=0.12 secs] 2011-01-04T18:37:27.242-0500: 317195.294: [GC 317195.294: [ParNew: 682402K->88786K(757760K), 0.1270880 secs] 1991890K->1399799K (2408448K), 0.1278570 secs] [Times: user=0.63 sys=0.00, real=0.13 secs] 2011-01-04T18:38:06.888-0500: 317234.940: [GC 317234.940: [ParNew: 694994K->71919K(757760K), 0.1298460 secs] 2006007K->1385713K (2408448K), 0.1305940 secs] [Times: user=0.63 sys=0.00, real=0.13 secs] 2011-01-04T18:38:27.888-0500: 317255.940: [GC 317255.941: [ParNew: 678127K->94010K(757760K), 0.1288970 secs] 1991921K->1410066K (2408448K), 0.1296270 secs] [Times: user=0.67 sys=0.00, real=0.13 secs] 2011-01-04T18:38:58.904-0500: 317286.956: [GC 317286.957: [ParNew: 700218K->71826K(757760K), 0.1199630 secs] 2016274K->1389379K (2408448K), 0.1207380 secs] [Times: user=0.63 sys=0.01, real=0.12 secs] 2011-01-04T18:39:21.896-0500: 317309.947: [GC 317309.948: [ParNew: 678034K->89229K(757760K), 0.1211860 secs] 1995587K->1407260K (2408448K), 0.1219360 secs] [Times: user=0.62 sys=0.00, real=0.12 secs] 2011-01-04T18:39:53.845-0500: 317341.897: [GC 317341.897: [ParNew: 695437K->76437K(757760K), 0.1253990 secs] 2013468K->1396004K (2408448K), 0.1261630 secs] [Times: user=0.67 sys=0.00, real=0.13 secs] 2011-01-04T18:40:18.938-0500: 317366.990: [GC 317366.990: [ParNew: 682645K->91160K(757760K), 0.1523130 secs] 2002212K->1410757K (2408448K), 0.1531110 secs] [Times: user=0.83 sys=0.01, real=0.15 secs] 2011-01-04T18:40:42.708-0500: 317390.760: [GC 317390.760: [ParNew: 697002K->87022K(757760K), 0.1530570 secs] 2016600K->1408083K (2408448K), 0.1538470 secs] [Times: user=0.71 sys=0.01, real=0.16 secs] 2011-01-04T18:40:42.867-0500: 317390.919: [GC [1 CMS-initial-mark: 1321060K(1650688K)] 1408857K(2408448K), 0.2067320 secs] [Times: user=0.21 sys=0.00, real=0.21 secs] 2011-01-04T18:40:43.075-0500: 317391.126: [CMS-concurrent-mark-start] 2011-01-04T18:40:47.573-0500: 317395.625: [CMS-concurrent-mark: 4.486/4.499 secs] [Times: user=12.20 sys=0.13, real=4.50 secs] 2011-01-04T18:40:47.574-0500: 317395.625: [CMS-concurrent-preclean- start] 2011-01-04T18:40:47.636-0500: 317395.688: [CMS-concurrent-preclean: 0.059/0.063 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] 2011-01-04T18:40:47.637-0500: 317395.688: [CMS-concurrent-abortable- preclean-start] CMS: abort preclean due to time 2011-01-04T18:40:52.701-0500: 317400.753: [CMS-concurrent-abortable-preclean: 4.139/5.065 secs] [Times: user=5.46 sys=0.05, real=5.07 secs] 2011-01-04T18:40:52.707-0500: 317400.758: [GC[YG occupancy: 432613 K (757760 K)]317400.759: [Rescan (parallel) , 0.9054620 secs]317401.664: [weak refs processing, 0.0017920 secs]317401.666: [class unloading, 0.1888550 secs]317401.855: [scrub symbol & string tables, 0.1271210 secs] [1 CMS-remark: 1321060K(1650688K)] 1753674K(2408448K), 1.2454560 secs] [Times: user=5.33 sys=0.02, real=1.25 secs] 2011-01-04T18:40:53.953-0500: 317402.005: [CMS-concurrent-sweep-start] 2011-01-04T18:40:57.534-0500: 317405.586: [CMS-concurrent-sweep: 3.565/3.581 secs] [Times: user=4.90 sys=0.07, real=3.58 secs] 2011-01-04T18:40:57.535-0500: 317405.586: [CMS-concurrent-reset-start] 2011-01-04T18:40:57.595-0500: 317405.646: [CMS-concurrent-reset: 0.060/0.060 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] New Server 2011-01-04T18:33:40.473-0500: 223993.306: [CMS-concurrent-reset: 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 2011-01-04T18:33:54.357-0500: 224007.190: [GC 224007.190: [ParNew: 719918K->130085K(757760K), 0.0754960 secs] 2004520K->1415071K (2408448K), 0.0758300 secs] [Times: user=0.42 sys=0.00, real=0.07 secs] 2011-01-04T18:34:47.106-0500: 224059.939: [GC 224059.939: [ParNew: 736293K->107200K(757760K), 0.0819180 secs] 2021279K->1393051K (2408448K), 0.0822590 secs] [Times: user=0.45 sys=0.00, real=0.08 secs] 2011-01-04T18:35:07.057-0500: 224079.891: [GC 224079.891: [ParNew: 713408K->134972K(757760K), 0.0886030 secs] 1999259K->1421467K (2408448K), 0.0889400 secs] [Times: user=0.42 sys=0.00, real=0.09 secs] 2011-01-04T18:35:41.454-0500: 224114.287: [GC 224114.288: [ParNew: 741180K->117493K(757760K), 0.0785680 secs] 2027675K->1404100K (2408448K), 0.0789010 secs] [Times: user=0.44 sys=0.00, real=0.08 secs] 2011-01-04T18:36:07.806-0500: 224140.640: [GC 224140.640: [ParNew: 723701K->139373K(757760K), 0.0919290 secs] 2010308K->1426255K (2408448K), 0.0922630 secs] [Times: user=0.49 sys=0.00, real=0.10 secs] 2011-01-04T18:36:40.539-0500: 224173.372: [GC 224173.372: [ParNew: 745581K->118113K(757760K), 0.0912580 secs] 2032463K->1405613K (2408448K), 0.0916060 secs] [Times: user=0.49 sys=0.00, real=0.09 secs] 2011-01-04T18:37:02.915-0500: 224195.748: [GC 224195.748: [ParNew: 724321K->145077K(757760K), 0.0928130 secs] 2011821K->1434160K (2408448K), 0.0931450 secs] [Times: user=0.48 sys=0.00, real=0.09 secs] 2011-01-04T18:37:22.451-0500: 224215.284: [GC 224215.284: [ParNew: 751285K->107168K(757760K), 0.0779940 secs] 2040368K->1399901K (2408448K), 0.0783240 secs] [Times: user=0.40 sys=0.00, real=0.08 secs] 2011-01-04T18:37:53.390-0500: 224246.223: [GC 224246.223: [ParNew: 713376K->123307K(757760K), 0.0920660 secs] 2006109K->1418928K (2408448K), 0.0924470 secs] [Times: user=0.45 sys=0.00, real=0.10 secs] 2011-01-04T18:38:16.100-0500: 224268.934: [GC 224268.934: [ParNew: 729515K->105143K(757760K), 0.0863940 secs] 2025136K->1402705K (2408448K), 0.0867110 secs] [Times: user=0.43 sys=0.00, real=0.09 secs] 2011-01-04T18:38:30.499-0500: 224283.332: [GC 224283.333: [ParNew: 711351K->127726K(757760K), 0.0918920 secs] 2008913K->1426844K (2408448K), 0.0922350 secs] [Times: user=0.48 sys=0.00, real=0.09 secs] 2011-01-04T18:39:09.092-0500: 224321.925: [GC 224321.926: [ParNew: 733934K->106828K(757760K), 0.0962380 secs] 2033052K->1408490K (2408448K), 0.0965730 secs] [Times: user=0.51 sys=0.00, real=0.10 secs] 2011-01-04T18:39:36.359-0500: 224349.192: [GC 224349.192: [ParNew: 713036K->110615K(757760K), 0.0924370 secs] 2014698K->1413885K (2408448K), 0.0927620 secs] [Times: user=0.49 sys=0.00, real=0.09 secs] 2011-01-04T18:39:41.489-0500: 224354.322: [GC 224354.322: [ParNew: 716823K->130526K(757760K), 0.1148370 secs] 2020093K->1435557K (2408448K), 0.1152070 secs] [Times: user=0.51 sys=0.00, real=0.11 secs] 2011-01-04T18:39:58.265-0500: 224371.099: [GC 224371.099: [ParNew: 736734K->112410K(757760K), 0.1139600 secs] 2041765K->1421693K (2408448K), 0.1143070 secs] [Times: user=0.59 sys=0.00, real=0.11 secs] 2011-01-04T18:40:22.876-0500: 224395.709: [GC 224395.709: [ParNew: 718618K->151551K(757760K), 0.1168680 secs] 2027901K->1464667K (2408448K), 0.1172010 secs] [Times: user=0.58 sys=0.00, real=0.12 secs] 2011-01-04T18:40:41.288-0500: 224414.121: [GC 224414.121: [ParNew: 757759K->131092K(757760K), 0.1072970 secs] 2070875K->1445457K (2408448K), 0.1076500 secs] [Times: user=0.61 sys=0.00, real=0.11 secs] 2011-01-04T18:41:06.756-0500: 224439.589: [GC 224439.590: [ParNew: 737300K->151552K(757760K), 0.1244220 secs] 2051665K->1476639K (2408448K), 0.1247530 secs] [Times: user=0.59 sys=0.00, real=0.13 secs] 2011-01-04T18:41:06.882-0500: 224439.715: [GC [1 CMS-initial-mark: 1325087K(1650688K)] 1477191K(2408448K), 0.1086530 secs] [Times: user=0.10 sys=0.00, real=0.10 secs] 2011-01-04T18:41:06.991-0500: 224439.824: [CMS-concurrent-mark-start] 2011-01-04T18:41:08.521-0500: 224441.354: [CMS-concurrent-mark: 1.529/1.529 secs] [Times: user=3.31 sys=0.02, real=1.54 secs] 2011-01-04T18:41:08.521-0500: 224441.354: [CMS-concurrent-preclean- start] 2011-01-04T18:41:08.535-0500: 224441.368: [CMS-concurrent-preclean: 0.014/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 2011-01-04T18:41:08.535-0500: 224441.368: [CMS-concurrent-abortable- preclean-start] CMS: abort preclean due to time 2011-01-04T18:41:13.646-0500: 224446.479: [CMS-concurrent-abortable-preclean: 3.679/5.111 secs] [Times: user=3.99 sys=0.03, real=5.11 secs] 2011-01-04T18:41:13.648-0500: 224446.482: [GC[YG occupancy: 220397 K (757760 K)]224446.482: [Rescan (parallel) , 0.0440200 secs]224446.526: [weak refs processing, 0.0059890 secs]224446.532: [class unloading, 0.1417810 secs]224446.674: [scrub symbol & string tables, 0.0489470 secs] [1 CMS-remark: 1325087K(1650688K)] 1545485K(2408448K), 0.2519760 secs] [Times: user=0.44 sys=0.01, real=0.25 secs] 2011-01-04T18:41:13.901-0500: 224446.734: [CMS-concurrent-sweep-start] 2011-01-04T18:41:14.791-0500: 224447.624: [CMS-concurrent-sweep: 0.888/0.890 secs] [Times: user=0.91 sys=0.01, real=0.88 secs] 2011-01-04T18:41:14.791-0500: 224447.624: [CMS-concurrent-reset-start] 2011-01-04T18:41:14.795-0500: 224447.628: [CMS-concurrent-reset: 0.004/0.004 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 2011-01-04T18:41:40.336-0500: 224473.169: [GC 224473.170: [ParNew: 757760K->151551K(757760K), 0.1246970 secs] 2061601K->1458549K (2408448K), 0.1250470 secs] [Times: user=0.67 sys=0.00, real=0.13 secs] 2011-01-04T18:42:15.493-0500: 224508.327: [GC 224508.327: [ParNew: 757759K->151552K(757760K), 0.1264960 secs] 2064757K->1468487K (2408448K), 0.1269000 secs] [Times: user=0.58 sys=0.00, real=0.13 secs] 2011-01-04T18:42:30.747-0500: 224523.580: [GC 224523.580: [ParNew: 757760K->150109K(757760K), 0.1121970 secs] 2074695K->1469299K (2408448K), 0.1126290 secs] [Times: user=0.56 sys=0.00, real=0.12 secs] 2011-01-04T18:43:00.779-0500: 224553.612: [GC 224553.612: [ParNew: 756317K->151552K(757760K), 0.1331190 secs] 2075507K->1479534K (2408448K), 0.1334580 secs] [Times: user=0.61 sys=0.00, real=0.13 secs] 2011-01-04T18:43:00.914-0500: 224553.748: [GC [1 CMS-initial-mark: 1327982K(1650688K)] 1479538K(2408448K), 0.1464550 secs] [Times: user=0.15 sys=0.00, real=0.15 secs] 2011-01-04T18:43:01.061-0500: 224553.894: [CMS-concurrent-mark-start] 2011-01-04T18:43:02.661-0500: 224555.494: [CMS-concurrent-mark: 1.583/1.600 secs] [Times: user=3.70 sys=0.04, real=1.60 secs] 2011-01-04T18:43:02.661-0500: 224555.494: [CMS-concurrent-preclean- start] 2011-01-04T18:43:02.675-0500: 224555.509: [CMS-concurrent-preclean: 0.014/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 2011-01-04T18:43:02.676-0500: 224555.509: [CMS-concurrent-abortable- preclean-start] CMS: abort preclean due to time 2011-01-04T18:43:07.909-0500: 224560.742: [CMS-concurrent-abortable-preclean: 3.899/5.234 secs] [Times: user=4.31 sys=0.08, real=5.24 secs] 2011-01-04T18:43:07.912-0500: 224560.745: [GC[YG occupancy: 289988 K (757760 K)]224560.745: [Rescan (parallel) , 0.1425160 secs]224560.888: [weak refs processing, 0.0000900 secs]224560.888: [class unloading, 0.1369840 secs]224561.025: [scrub symbol & string tables, 0.0474080 secs] [1 CMS-remark: 1327982K(1650688K)] 1617971K(2408448K), 0.3377450 secs] [Times: user=0.75 sys=0.00, real=0.34 secs] 2011-01-04T18:43:08.250-0500: 224561.083: [CMS-concurrent-sweep-start] 2011-01-04T18:43:09.138-0500: 224561.971: [CMS-concurrent-sweep: 0.888/0.888 secs] [Times: user=0.90 sys=0.01, real=0.89 secs] 2011-01-04T18:43:09.138-0500: 224561.972: [CMS-concurrent-reset-start] 2011-01-04T18:43:09.142-0500: 224561.976: [CMS-concurrent-reset: 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 2011-01-04T18:43:21.068-0500: 224573.902: [GC 224573.902: [ParNew: 757360K->151551K(757760K), 0.1132670 secs] 2060610K->1458489K (2408448K), 0.1135890 secs] [Times: user=0.59 sys=0.00, real=0.11 secs] 2011-01-04T18:43:46.517-0500: 224599.350: [GC 224599.350: [ParNew: 757759K->151552K(757760K), 0.1540840 secs] 2064697K->1475010K (2408448K), 0.1544610 secs] [Times: user=0.72 sys=0.00, real=0.15 secs] 2011-01-04T18:43:46.673-0500: 224599.506: [GC [1 CMS-initial-mark: 1323458K(1650688K)] 1480665K(2408448K), 0.1355380 secs] [Times: user=0.13 sys=0.00, real=0.14 secs] 2011-01-04T18:43:46.809-0500: 224599.642: [CMS-concurrent-mark-start] 2011-01-04T18:43:48.464-0500: 224601.297: [CMS-concurrent-mark: 1.656/1.656 secs] [Times: user=3.44 sys=0.04, real=1.66 secs] 2011-01-04T18:43:48.464-0500: 224601.297: [CMS-concurrent-preclean- start] 2011-01-04T18:43:48.478-0500: 224601.311: [CMS-concurrent-preclean: 0.013/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] 2011-01-04T18:43:48.478-0500: 224601.311: [CMS-concurrent-abortable- preclean-start] CMS: abort preclean due to time 2011-01-04T18:43:53.604-0500: 224606.437: [CMS-concurrent-abortable-preclean: 4.402/5.126 secs] [Times: user=5.51 sys=0.13, real=5.13 secs] 2011-01-04T18:43:53.606-0500: 224606.439: [GC[YG occupancy: 354174 K (757760 K)]224606.439: [Rescan (parallel) , 0.0620250 secs]224606.501: [weak refs processing, 0.0001870 secs]224606.501: [class unloading, 0.1428830 secs]224606.644: [scrub symbol & string tables, 0.0630710 secs] [1 CMS-remark: 1323458K(1650688K)] 1677633K(2408448K), 0.2790260 secs] [Times: user=0.60 sys=0.00, real=0.28 secs] 2011-01-04T18:43:53.886-0500: 224606.719: [CMS-concurrent-sweep-start] 2011-01-04T18:43:54.763-0500: 224607.596: [CMS-concurrent-sweep: 0.877/0.877 secs] [Times: user=0.96 sys=0.01, real=0.88 secs] 2011-01-04T18:43:54.763-0500: 224607.596: [CMS-concurrent-reset-start] 2011-01-04T18:43:54.767-0500: 224607.600: [CMS-concurrent-reset: 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From Brian.Harris at morganstanley.com Wed Jan 5 16:47:21 2011 From: Brian.Harris at morganstanley.com (Brian Harris) Date: Wed, 5 Jan 2011 11:47:21 -0500 Subject: accessing memory management details In-Reply-To: References: Message-ID: Hi again, An idea has come to mind which may allow rough estimates for some of these figures. Instrumentation could be used as a hook to register phantom references of all newly allocated objects with a reference queue. Verbose GC logs could also be captured and parsed, and the GC timestamps could be fuzzy matched with the reference enqueue timestamps. Which GC run claimed which object could(?) then be roughly inferred. Obviously this is far from ideal on many fronts and I'm not sure it would produce good results. On Mon, Dec 20, 2010 at 12:02 PM, Brian Harris wrote: > Hello, > > Is it possible for my app to learn where objects are allocated? Young or > old generation, if young which survivor space? In a LAB? I'm interested in > where an object was initially allocated, but also any movements (from > where?, to where?, when?) that happen thereafter. > > These use cases illustrate what I had in mind: > * JUnit test asserting >90% of allocations of type com.mycompany.Entity > are done in TLAB > * Benchmark tool showing the effect that various JVM tuning parameters > have on memory management. Displayed as graphs, timelines, etc. > > I looked through the 1.6 JVMTI demos and didn't see these sort of details > being exposed. Also nothing similar looking through BTrace examples. Where > should I look next?. > > Happy holidays, > Brian Harris > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From Alan.Bateman at oracle.com Thu Jan 6 14:01:18 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 06 Jan 2011 14:01:18 +0000 Subject: request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent In-Reply-To: References: <4D2263A3.8030603@oracle.com> <4D23469B.50805@oracle.com> Message-ID: <4D25CB2E.1070807@oracle.com> Keith McGuigan wrote: > > : > I'll find and fix those comments. Can you expand upon what you mean > by "re-hash to the same slot"? I don't understand how that would work. Sorry for the delay getting back to you on this. I was just wondering about JvmtiTagMap::do_weak_oops and whether the delayed_add list could be avoided. Maybe not and I was just wondering about the cost of visiting objects that were re-hashed to higher slots. I guess it's an is_alive vs. iterating over the delay_add list to put the entries into the right place. The hashing code would be the same. -Alan. From keith.mcguigan at oracle.com Thu Jan 6 14:13:21 2011 From: keith.mcguigan at oracle.com (Keith McGuigan) Date: Thu, 6 Jan 2011 09:13:21 -0500 Subject: request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent In-Reply-To: <4D25CB2E.1070807@oracle.com> References: <4D2263A3.8030603@oracle.com> <4D23469B.50805@oracle.com> <4D25CB2E.1070807@oracle.com> Message-ID: On Jan 6, 2011, at 9:01 AM, Alan Bateman wrote: > Keith McGuigan wrote: >> >> : >> I'll find and fix those comments. Can you expand upon what you >> mean by "re-hash to the same slot"? I don't understand how that >> would work. > Sorry for the delay getting back to you on this. I was just > wondering about JvmtiTagMap::do_weak_oops and whether the > delayed_add list could be avoided. Maybe not and I was just > wondering about the cost of visiting objects that were re-hashed to > higher slots. I guess it's an is_alive vs. iterating over the > delay_add list to put the entries into the right place. The hashing > code would be the same. Actually, we cannot re-visit an object that was re-hashed to a higher slot. The body of one of those closures asserts out if you pass an oop in it's new location (I think it's expecting to see a fowarding pointer and doesn't see it). This is why I added the delayed_add list originally. We could flag these entries as "already-moved" or something like that, and reset the flag as we encounter them instead of passing them to the iterator. I didn't do that at first because I didn't want to make the entries bigger and use more memory, but maybe I could do some bit tricks in the oop*. I'd rather not have to resort to that unless the cost of processing the delayed list is an issue. It doesn't appear to be at the moment. -- - Keith From Alan.Bateman at oracle.com Thu Jan 6 14:42:48 2011 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Thu, 06 Jan 2011 14:42:48 +0000 Subject: request for review (M), 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent In-Reply-To: References: <4D2263A3.8030603@oracle.com> <4D23469B.50805@oracle.com> <4D25CB2E.1070807@oracle.com> Message-ID: <4D25D4E8.8000308@oracle.com> Keith McGuigan wrote: > > : > Actually, we cannot re-visit an object that was re-hashed to a higher > slot. The body of one of those closures asserts out if you pass an > oop in it's new location (I think it's expecting to see a fowarding > pointer and doesn't see it). This is why I added the delayed_add list > originally. We could flag these entries as "already-moved" or > something like that, and reset the flag as we encounter them instead > of passing them to the iterator. I didn't do that at first because I > didn't want to make the entries bigger and use more memory, but maybe > I could do some bit tricks in the oop*. I'd rather not have to resort > to that unless the cost of processing the delayed list is an issue. > It doesn't appear to be at the moment. Okay, got it, in that case what you have is fine as you definitively don't want to increase the size of the entries as there could be millions of them. -Alan From peter.schuller at infidyne.com Thu Jan 6 14:55:49 2011 From: peter.schuller at infidyne.com (Peter Schuller) Date: Thu, 6 Jan 2011 15:55:49 +0100 Subject: g1: dealing with high rates of inter-region pointer writes In-Reply-To: References: <4D1A302D.1090800@oracle.com> <4D1B7C98.4020303@oracle.com> Message-ID: > It is http://github.com/scode/httpgctest - but before anyone spends > time on this let me come up with a different test case that is better > (an actual LRU, and for both immutable and non-immutable cases). I'll > try to do that in time for next week. I now have an LRU test case which is entirely realistic, and can be observed causing fallback to full GC on a 2 GB heap, with a live set size of 350 MB (according to the results of a full GC). This is in spite of the mutator being severely rate limited and only saturating 10-20% of a single core on this machine. Test performed with recent openjdk7 and with G1 pause time/interval goals of 50/75. The test shows very little partial collection activity (but lots of concurrent marking, to the point of wasting up to 10x amount of CPU relative to mutator). I originally wanted to do something more elaborate (comparing both immutable LRU with regular mutable Java style LRU, doing some graphs etc) but I realized I was not going to get to it in a reasonable amount of time, so this will have to do for now. I did run this test briefly with a VM that prints sparse table entry overflow, and they are indeed happening a lot. I did not, for this particular test, look specifically at liveness information and rs scan costs for individual regions. Assuming git and maven is available, the easiest way to run the test is: # Get plru, which is a dependency not available in public repositories git clone git://github.com/scode/plru.git (cd plru && mvn install) # Build/run the test itself git clone git://github.com/scode/lrugctest.git cd lrugctest mvn compile mvn clojure:run However, for practical purposes there is a wrapper script 'run.sh' which runs it with some appropriate VM options depending on collector. Here is the command line I used for G1; substitute accordingly: GCTEST_COLLECTOR=g1 JAVA_HOME=/usr/local/openjdk7 ./run.sh The test itself is just a rate limited loop that throws data into an LRU with pseudo-random keys, simulating 50% cache hit rate (on a full cache). While it is running, it's also listening for HTTP requests on port 9191, allowing changing the LRU size and the rate limiting on the running test without restarting (see the README for example curl commands). Here is a subset of the output of my test run (the end of it); notice the full GC at the end and the lack of significant partial collection following the preceeding concurrent mark: 382.372: [GC concurrent-mark-end, 2.9801090 sec] 382.372: [GC remark, 0.0007910 secs] 382.373: [GC concurrent-count-start] 1000000 entries, 100.0% full 382.854: [GC concurrent-count-end, 0.4811190] 382.854: [GC cleanup 1913M->1913M(2048M), 0.1419250 secs] 382.996: [GC concurrent-cleanup-start] 382.996: [GC concurrent-cleanup-end, 0.0001040] 383.302: [GC pause (young) 1945M->1855M(2048M), 0.0295900 secs] 383.360: [GC pause (partial) 1858M->1853M(2048M), 0.0255510 secs] 1000000 entries, 100.0% full 383.951: [GC pause (young) 1901M->1859M(2048M), 0.0134920 secs] 384.793: [GC pause (young) (initial-mark) 1953M->1868M(2048M)384.822: [GC concurrent-mark-start] , 0.0289590 secs] 1000000 entries, 100.0% full 385.222: [GC pause (young) 1913M->1873M(2048M), 0.0428580 secs] 1000000 entries, 100.0% full 386.087: [GC pause (young) 1960M->1881M(2048M), 0.0609920 secs] 1000000 entries, 100.0% full 386.908: [GC pause (young) 1964M->1888M(2048M), 0.0733250 secs] 387.102: [GC concurrent-mark-end, 2.2799430 sec] 387.102: [GC remark, 0.0007420 secs] 387.103: [GC concurrent-count-start] 387.584: [GC concurrent-count-end, 0.4815970] 387.584: [GC cleanup 1955M->1955M(2048M), 0.1430320 secs] 387.727: [GC concurrent-cleanup-start] 387.728: [GC concurrent-cleanup-end, 0.0000620] 387.840: [GC pause (young) 1967M->1895M(2048M), 0.0287990 secs] 1000000 entries, 100.0% full 387.916: [GC pause (partial) 1898M->1890M(2048M), 0.0295090 secs] 388.770: [GC pause (young) 1968M->1898M(2048M), 0.0215940 secs] 1000000 entries, 100.0% full 389.441: [GC pause (young) (initial-mark) 1972M->1905M(2048M)389.465: [GC concurrent-mark-start] , 0.0244800 secs] 1000000 entries, 100.0% full 1000000 entries, 100.0% full 391.638: [GC concurrent-mark-end, 2.1725060 sec] 391.684: [GC remark, 0.0151950 secs] 391.700: [GC concurrent-count-start] 1000000 entries, 100.0% full 392.206: [GC pause (young)-- 2046M->2047M(2048M), 0.4325950 secs] 392.642: [Full GC 2047M->355M(2048M), 3.0683440 secs] I think the test is interesting because it's quite realistic: * Pause time goal of 50 ms over 75 ms. The 50/75 ratio is not extreme at all, and 50 ms in absolute numbers is not extreme either, particularly for so very limited mutator activity. * It's an LRU cache. This is a frequent use-case. Again though, I realize the persistent data structure version of the LRU is uncommon. I've observed and reported high RS scan times before with a regular LinkedHashMap, but that was before I had dug into things as far as now so I only had PrintGCDetails and no information on liveness or sparse table entry overflows (but I highly suspect this was the cause there too). I am still interested in just hearing opinions on whether or not this is unexpected. As far as I can understand based on how G1 works, it *seems* expected that lots of inter-region writes would be problematic in that they massively inflate the conservative view of the remembered set. And given the cost of rs scanning and the way regions are picked for collection, it seems expected that the result will be the inability to collect these regions. -- / Peter Schuller From jon.masamitsu at oracle.com Thu Jan 6 15:53:52 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Thu, 06 Jan 2011 07:53:52 -0800 Subject: CPU differences and CMS GC performance In-Reply-To: References: Message-ID: <4D25E590.7040202@oracle.com> Craig, Please send me a few of the ParNew collections for the old server after the CMS sweep - after this point 2011-01-04T18:40:53.953-0500: 317402.005: [CMS-concurrent-sweep-start] 2011-01-04T18:40:57.534-0500: 317405.586: [CMS-concurrent-sweep: 3.565/3.581 secs] [Times: user=4.90 sys=0.07, real=3.58 secs] 2011-01-04T18:40:57.535-0500: 317405.586: [CMS-concurrent-reset-start] 2011-01-04T18:40:57.595-0500: 317405.646: [CMS-concurrent-reset: 0.060/0.060 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] Jon On 01/05/11 08:37, craig yeldell wrote: > I have a production environment that consists of two different > hardware configurations. We have just replaced half our environment > with new servers that have more RAM and different CPU's. We left the > GC params the same, the GC behavior has been quite surprising. I > expected to see faster collections on the New and CMS due to the raw > cpu test results of the Nehalem, and this held true. However I also > found fewer New collections, and increased CMS collections. > In a nutshell, I assumed upgrading the CPU alone without touching the > GC args would result in improved GC performance. > > > Java info: > > Java(TM) SE Runtime Environment (build 1.6.0_20-b02) > Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode) > -server -Xmx2500m -Xms2500m -Dsun.rmi.dgc.client.gcInterval=3600000 > -Dsun.rmi.dgc.server.gcInterval=3600000 -Xss256k > -XX:+DisableExplicitGC -XX:PermSize=384m -XX:MaxPermSize=384m > -XX:MaxNewSize=888m -XX:NewSize=888m -XX:ParallelGCThreads=6 > -verbose:gc -Xloggc:vm01.gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps > -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC > -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=4 -XX:+UseTLAB > -XX:+UseParNewGC -XX:+UseBiasedLocking -XX:TargetSurvivorRatio=75 > -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80 > > NOTE: Each server has 4 jvm's running and all vm's in the environment > are equally load balanced. > > CPU info: > > OLD > 16GB > CPU frequency: 3.003 GHz (Xeon) > Number of CPUs: 4 > Number of cores: 8 > Number of threads: 16 > > NEW > *32GB* > CPU frequency: 2.533 GHz (Xeon E5540 Nehalem) > Number of CPUs: 2 > Number of cores: 8 > Number of threads: 16 > > Example GC snippet: > > Old server: > 2011-01-04T18:24:02.073-0500: 316390.125: [CMS-concurrent-reset: > 0.061/0.061 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] > 2011-01-04T18:24:12.890-0500: 316400.941: [GC 316400.942: [ParNew: > 690252K->93718K(757760K), 0.1300730 secs] > 1968696K->1372788K(2408448K), 0.1308690 secs] [Times: user=0.66 > sys=0.00, real=0.13 secs] > 2011-01-04T18:24:50.647-0500: 316438.698: [GC 316438.699: [ParNew: > 699926K->74785K(757760K), 0.1296920 secs] > 1978996K->1355277K(2408448K), 0.1304530 secs] [Times: user=0.61 > sys=0.00, real=0.13 secs] > 2011-01-04T18:25:17.854-0500: 316465.905: [GC 316465.906: [ParNew: > 680928K->86498K(757760K), 0.1505500 secs] > 1961420K->1369830K(2408448K), 0.1513450 secs] [Times: user=0.71 > sys=0.00, real=0.15 secs] > 2011-01-04T18:25:50.762-0500: 316498.814: [GC 316498.814: [ParNew: > 692706K->69120K(757760K), 0.1385690 secs] > 1976038K->1352581K(2408448K), 0.1393620 secs] [Times: user=0.63 > sys=0.00, real=0.14 secs] > 2011-01-04T18:26:22.644-0500: 316530.695: [GC 316530.696: [ParNew: > 675328K->86476K(757760K), 0.1493580 secs] > 1958789K->1372863K(2408448K), 0.1501220 secs] [Times: user=0.66 > sys=0.00, real=0.15 secs] > 2011-01-04T18:27:01.951-0500: 316570.003: [GC 316570.003: [ParNew: > 692684K->70259K(757760K), 0.1250090 secs] > 1979071K->1357514K(2408448K), 0.1257610 secs] [Times: user=0.62 > sys=0.00, real=0.13 secs] > 2011-01-04T18:27:28.542-0500: 316596.594: [GC 316596.594: [ParNew: > 676467K->88180K(757760K), 0.1030450 secs] > 1963722K->1375664K(2408448K), 0.1038090 secs] [Times: user=0.54 > sys=0.00, real=0.10 secs] > 2011-01-04T18:27:52.200-0500: 316620.251: [GC 316620.252: [ParNew: > 694388K->64015K(757760K), 0.1551250 secs] > 1981872K->1351774K(2408448K), 0.1560860 secs] [Times: user=0.79 > sys=0.00, real=0.15 secs] > 2011-01-04T18:28:07.789-0500: 316635.841: [GC 316635.841: [ParNew: > 670223K->94609K(757760K), 0.1321720 secs] > 1957982K->1385077K(2408448K), 0.1329350 secs] [Times: user=0.65 > sys=0.01, real=0.13 secs] > 2011-01-04T18:28:38.020-0500: 316666.071: [GC 316666.072: [ParNew: > 700817K->64339K(757760K), 0.1169430 secs] > 1991285K->1358764K(2408448K), 0.1177070 secs] [Times: user=0.59 > sys=0.00, real=0.12 secs] > 2011-01-04T18:29:13.319-0500: 316701.370: [GC 316701.371: [ParNew: > 670547K->75587K(757760K), 0.1352400 secs] > 1964972K->1370278K(2408448K), 0.1360140 secs] [Times: user=0.63 > sys=0.00, real=0.13 secs] > 2011-01-04T18:29:46.586-0500: 316734.637: [GC 316734.638: [ParNew: > 681795K->67573K(757760K), 0.1257050 secs] > 1976486K->1364337K(2408448K), 0.1265250 secs] [Times: user=0.56 > sys=0.01, real=0.12 secs] > 2011-01-04T18:30:31.525-0500: 316779.577: [GC 316779.578: [ParNew: > 673781K->65516K(757760K), 0.1143930 secs] > 1970545K->1363488K(2408448K), 0.1154980 secs] [Times: user=0.54 > sys=0.00, real=0.12 secs] > 2011-01-04T18:30:56.159-0500: 316804.211: [GC 316804.211: [ParNew: > 671724K->54331K(757760K), 0.1067750 secs] > 1969696K->1353537K(2408448K), 0.1075690 secs] [Times: user=0.53 > sys=0.00, real=0.11 secs] > 2011-01-04T18:32:01.256-0500: 316869.308: [GC 316869.308: [ParNew: > 660539K->66703K(757760K), 0.1036880 secs] > 1959745K->1367053K(2408448K), 0.1044590 secs] [Times: user=0.49 > sys=0.00, real=0.11 secs] > 2011-01-04T18:32:31.967-0500: 316900.019: [GC 316900.019: [ParNew: > 672911K->54742K(757760K), 0.1121020 secs] > 1973261K->1355232K(2408448K), 0.1128580 secs] [Times: user=0.51 > sys=0.00, real=0.11 secs] > 2011-01-04T18:33:05.187-0500: 316933.239: [GC 316933.239: [ParNew: > 660950K->66592K(757760K), 0.0990360 secs] > 1961440K->1368889K(2408448K), 0.0998210 secs] [Times: user=0.49 > sys=0.00, real=0.10 secs] > 2011-01-04T18:33:38.693-0500: 316966.745: [GC 316966.745: [ParNew: > 672800K->57860K(757760K), 0.1132210 secs] > 1975097K->1361914K(2408448K), 0.1139990 secs] [Times: user=0.53 > sys=0.01, real=0.12 secs] > 2011-01-04T18:34:33.087-0500: 317021.139: [GC 317021.139: [ParNew: > 664068K->74055K(757760K), 0.1268070 secs] > 1968122K->1379190K(2408448K), 0.1275670 secs] [Times: user=0.52 > sys=0.00, real=0.12 secs] > 2011-01-04T18:34:59.371-0500: 317047.423: [GC 317047.423: [ParNew: > 680263K->67454K(757760K), 0.1354760 secs] > 1985398K->1374886K(2408448K), 0.1363060 secs] [Times: user=0.61 > sys=0.01, real=0.14 secs] > 2011-01-04T18:35:23.757-0500: 317071.809: [GC 317071.809: [ParNew: > 673662K->78394K(757760K), 0.1624010 secs] > 1981094K->1385967K(2408448K), 0.1632150 secs] [Times: user=0.78 > sys=0.00, real=0.17 secs] > 2011-01-04T18:35:45.117-0500: 317093.169: [GC 317093.169: [ParNew: > 684602K->66073K(757760K), 0.1161380 secs] > 1992175K->1373969K(2408448K), 0.1170380 secs] [Times: user=0.60 > sys=0.00, real=0.12 secs] > 2011-01-04T18:36:29.794-0500: 317137.845: [GC 317137.846: [ParNew: > 672281K->97964K(757760K), 0.1333770 secs] > 1980177K->1406249K(2408448K), 0.1341740 secs] [Times: user=0.68 > sys=0.00, real=0.13 secs] > 2011-01-04T18:36:58.710-0500: 317166.762: [GC 317166.762: [ParNew: > 704172K->76194K(757760K), 0.1261530 secs] > 2012457K->1385682K(2408448K), 0.1269720 secs] [Times: user=0.64 > sys=0.00, real=0.12 secs] > 2011-01-04T18:37:27.242-0500: 317195.294: [GC 317195.294: [ParNew: > 682402K->88786K(757760K), 0.1270880 secs] > 1991890K->1399799K(2408448K), 0.1278570 secs] [Times: user=0.63 > sys=0.00, real=0.13 secs] > 2011-01-04T18:38:06.888-0500: 317234.940: [GC 317234.940: [ParNew: > 694994K->71919K(757760K), 0.1298460 secs] > 2006007K->1385713K(2408448K), 0.1305940 secs] [Times: user=0.63 > sys=0.00, real=0.13 secs] > 2011-01-04T18:38:27.888-0500: 317255.940: [GC 317255.941: [ParNew: > 678127K->94010K(757760K), 0.1288970 secs] > 1991921K->1410066K(2408448K), 0.1296270 secs] [Times: user=0.67 > sys=0.00, real=0.13 secs] > 2011-01-04T18:38:58.904-0500: 317286.956: [GC 317286.957: [ParNew: > 700218K->71826K(757760K), 0.1199630 secs] > 2016274K->1389379K(2408448K), 0.1207380 secs] [Times: user=0.63 > sys=0.01, real=0.12 secs] > 2011-01-04T18:39:21.896-0500: 317309.947: [GC 317309.948: [ParNew: > 678034K->89229K(757760K), 0.1211860 secs] > 1995587K->1407260K(2408448K), 0.1219360 secs] [Times: user=0.62 > sys=0.00, real=0.12 secs] > 2011-01-04T18:39:53.845-0500: 317341.897: [GC 317341.897: [ParNew: > 695437K->76437K(757760K), 0.1253990 secs] > 2013468K->1396004K(2408448K), 0.1261630 secs] [Times: user=0.67 > sys=0.00, real=0.13 secs] > 2011-01-04T18:40:18.938-0500: 317366.990: [GC 317366.990: [ParNew: > 682645K->91160K(757760K), 0.1523130 secs] > 2002212K->1410757K(2408448K), 0.1531110 secs] [Times: user=0.83 > sys=0.01, real=0.15 secs] > 2011-01-04T18:40:42.708-0500: 317390.760: [GC 317390.760: [ParNew: > 697002K->87022K(757760K), 0.1530570 secs] > 2016600K->1408083K(2408448K), 0.1538470 secs] [Times: user=0.71 > sys=0.01, real=0.16 secs] > 2011-01-04T18:40:42.867-0500: 317390.919: [GC [1 CMS-initial-mark: > 1321060K(1650688K)] 1408857K(2408448K), 0.2067320 secs] [Times: > user=0.21 sys=0.00, real=0.21 secs] > 2011-01-04T18:40:43.075-0500: 317391.126: [CMS-concurrent-mark-start] > 2011-01-04T18:40:47.573-0500: 317395.625: [CMS-concurrent-mark: > 4.486/4.499 secs] [Times: user=12.20 sys=0.13, real=4.50 secs] > 2011-01-04T18:40:47.574-0500: 317395.625: [CMS-concurrent-preclean-start] > 2011-01-04T18:40:47.636-0500: 317395.688: [CMS-concurrent-preclean: > 0.059/0.063 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] > 2011-01-04T18:40:47.637-0500: 317395.688: > [CMS-concurrent-abortable-preclean-start] > CMS: abort preclean due to time 2011-01-04T18:40:52.701-0500: > 317400.753: [CMS-concurrent-abortable-preclean: 4.139/5.065 secs] > [Times: user=5.46 sys=0.05, real=5.07 secs] > 2011-01-04T18:40:52.707-0500: 317400.758: [GC[YG occupancy: 432613 K > (757760 K)]317400.759: [Rescan (parallel) , 0.9054620 secs]317401.664: > [weak refs processing, 0.0017920 secs]317401.666: [class unloading, > 0.1888550 secs]317401.855: [scrub symbol & string tables, 0.1271210 > secs] [1 CMS-remark: 1321060K(1650688K)] 1753674K(2408448K), 1.2454560 > secs] [Times: user=5.33 sys=0.02, real=1.25 secs] > 2011-01-04T18:40:53.953-0500: 317402.005: [CMS-concurrent-sweep-start] > 2011-01-04T18:40:57.534-0500: 317405.586: [CMS-concurrent-sweep: > 3.565/3.581 secs] [Times: user=4.90 sys=0.07, real=3.58 secs] > 2011-01-04T18:40:57.535-0500: 317405.586: [CMS-concurrent-reset-start] > 2011-01-04T18:40:57.595-0500: 317405.646: [CMS-concurrent-reset: > 0.060/0.060 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] > > New Server > 2011-01-04T18:33:40.473-0500: 223993.306: [CMS-concurrent-reset: > 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] > 2011-01-04T18:33:54.357-0500: 224007.190: [GC 224007.190: [ParNew: > 719918K->130085K(757760K), 0.0754960 secs] > 2004520K->1415071K(2408448K), 0.0758300 secs] [Times: user=0.42 > sys=0.00, real=0.07 secs] > 2011-01-04T18:34:47.106-0500: 224059.939: [GC 224059.939: [ParNew: > 736293K->107200K(757760K), 0.0819180 secs] > 2021279K->1393051K(2408448K), 0.0822590 secs] [Times: user=0.45 > sys=0.00, real=0.08 secs] > 2011-01-04T18:35:07.057-0500: 224079.891: [GC 224079.891: [ParNew: > 713408K->134972K(757760K), 0.0886030 secs] > 1999259K->1421467K(2408448K), 0.0889400 secs] [Times: user=0.42 > sys=0.00, real=0.09 secs] > 2011-01-04T18:35:41.454-0500: 224114.287: [GC 224114.288: [ParNew: > 741180K->117493K(757760K), 0.0785680 secs] > 2027675K->1404100K(2408448K), 0.0789010 secs] [Times: user=0.44 > sys=0.00, real=0.08 secs] > 2011-01-04T18:36:07.806-0500: 224140.640: [GC 224140.640: [ParNew: > 723701K->139373K(757760K), 0.0919290 secs] > 2010308K->1426255K(2408448K), 0.0922630 secs] [Times: user=0.49 > sys=0.00, real=0.10 secs] > 2011-01-04T18:36:40.539-0500: 224173.372: [GC 224173.372: [ParNew: > 745581K->118113K(757760K), 0.0912580 secs] > 2032463K->1405613K(2408448K), 0.0916060 secs] [Times: user=0.49 > sys=0.00, real=0.09 secs] > 2011-01-04T18:37:02.915-0500: 224195.748: [GC 224195.748: [ParNew: > 724321K->145077K(757760K), 0.0928130 secs] > 2011821K->1434160K(2408448K), 0.0931450 secs] [Times: user=0.48 > sys=0.00, real=0.09 secs] > 2011-01-04T18:37:22.451-0500: 224215.284: [GC 224215.284: [ParNew: > 751285K->107168K(757760K), 0.0779940 secs] > 2040368K->1399901K(2408448K), 0.0783240 secs] [Times: user=0.40 > sys=0.00, real=0.08 secs] > 2011-01-04T18:37:53.390-0500: 224246.223: [GC 224246.223: [ParNew: > 713376K->123307K(757760K), 0.0920660 secs] > 2006109K->1418928K(2408448K), 0.0924470 secs] [Times: user=0.45 > sys=0.00, real=0.10 secs] > 2011-01-04T18:38:16.100-0500: 224268.934: [GC 224268.934: [ParNew: > 729515K->105143K(757760K), 0.0863940 secs] > 2025136K->1402705K(2408448K), 0.0867110 secs] [Times: user=0.43 > sys=0.00, real=0.09 secs] > 2011-01-04T18:38:30.499-0500: 224283.332: [GC 224283.333: [ParNew: > 711351K->127726K(757760K), 0.0918920 secs] > 2008913K->1426844K(2408448K), 0.0922350 secs] [Times: user=0.48 > sys=0.00, real=0.09 secs] > 2011-01-04T18:39:09.092-0500: 224321.925: [GC 224321.926: [ParNew: > 733934K->106828K(757760K), 0.0962380 secs] > 2033052K->1408490K(2408448K), 0.0965730 secs] [Times: user=0.51 > sys=0.00, real=0.10 secs] > 2011-01-04T18:39:36.359-0500: 224349.192: [GC 224349.192: [ParNew: > 713036K->110615K(757760K), 0.0924370 secs] > 2014698K->1413885K(2408448K), 0.0927620 secs] [Times: user=0.49 > sys=0.00, real=0.09 secs] > 2011-01-04T18:39:41.489-0500: 224354.322: [GC 224354.322: [ParNew: > 716823K->130526K(757760K), 0.1148370 secs] > 2020093K->1435557K(2408448K), 0.1152070 secs] [Times: user=0.51 > sys=0.00, real=0.11 secs] > 2011-01-04T18:39:58.265-0500: 224371.099: [GC 224371.099: [ParNew: > 736734K->112410K(757760K), 0.1139600 secs] > 2041765K->1421693K(2408448K), 0.1143070 secs] [Times: user=0.59 > sys=0.00, real=0.11 secs] > 2011-01-04T18:40:22.876-0500: 224395.709: [GC 224395.709: [ParNew: > 718618K->151551K(757760K), 0.1168680 secs] > 2027901K->1464667K(2408448K), 0.1172010 secs] [Times: user=0.58 > sys=0.00, real=0.12 secs] > 2011-01-04T18:40:41.288-0500: 224414.121: [GC 224414.121: [ParNew: > 757759K->131092K(757760K), 0.1072970 secs] > 2070875K->1445457K(2408448K), 0.1076500 secs] [Times: user=0.61 > sys=0.00, real=0.11 secs] > 2011-01-04T18:41:06.756-0500: 224439.589: [GC 224439.590: [ParNew: > 737300K->151552K(757760K), 0.1244220 secs] > 2051665K->1476639K(2408448K), 0.1247530 secs] [Times: user=0.59 > sys=0.00, real=0.13 secs] > 2011-01-04T18:41:06.882-0500: 224439.715: [GC [1 CMS-initial-mark: > 1325087K(1650688K)] 1477191K(2408448K), 0.1086530 secs] [Times: > user=0.10 sys=0.00, real=0.10 secs] > 2011-01-04T18:41:06.991-0500: 224439.824: [CMS-concurrent-mark-start] > 2011-01-04T18:41:08.521-0500: 224441.354: [CMS-concurrent-mark: > 1.529/1.529 secs] [Times: user=3.31 sys=0.02, real=1.54 secs] > 2011-01-04T18:41:08.521-0500: 224441.354: [CMS-concurrent-preclean-start] > 2011-01-04T18:41:08.535-0500: 224441.368: [CMS-concurrent-preclean: > 0.014/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] > 2011-01-04T18:41:08.535-0500: 224441.368: > [CMS-concurrent-abortable-preclean-start] > CMS: abort preclean due to time 2011-01-04T18:41:13.646-0500: > 224446.479: [CMS-concurrent-abortable-preclean: 3.679/5.111 secs] > [Times: user=3.99 sys=0.03, real=5.11 secs] > 2011-01-04T18:41:13.648-0500: 224446.482: [GC[YG occupancy: 220397 K > (757760 K)]224446.482: [Rescan (parallel) , 0.0440200 secs]224446.526: > [weak refs processing, 0.0059890 secs]224446.532: [class unloading, > 0.1417810 secs]224446.674: [scrub symbol & string tables, 0.0489470 > secs] [1 CMS-remark: 1325087K(1650688K)] 1545485K(2408448K), 0.2519760 > secs] [Times: user=0.44 sys=0.01, real=0.25 secs] > 2011-01-04T18:41:13.901-0500: 224446.734: [CMS-concurrent-sweep-start] > 2011-01-04T18:41:14.791-0500: 224447.624: [CMS-concurrent-sweep: > 0.888/0.890 secs] [Times: user=0.91 sys=0.01, real=0.88 secs] > 2011-01-04T18:41:14.791-0500: 224447.624: [CMS-concurrent-reset-start] > 2011-01-04T18:41:14.795-0500: 224447.628: [CMS-concurrent-reset: > 0.004/0.004 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] > 2011-01-04T18:41:40.336-0500: 224473.169: [GC 224473.170: [ParNew: > 757760K->151551K(757760K), 0.1246970 secs] > 2061601K->1458549K(2408448K), 0.1250470 secs] [Times: user=0.67 > sys=0.00, real=0.13 secs] > 2011-01-04T18:42:15.493-0500: 224508.327: [GC 224508.327: [ParNew: > 757759K->151552K(757760K), 0.1264960 secs] > 2064757K->1468487K(2408448K), 0.1269000 secs] [Times: user=0.58 > sys=0.00, real=0.13 secs] > 2011-01-04T18:42:30.747-0500: 224523.580: [GC 224523.580: [ParNew: > 757760K->150109K(757760K), 0.1121970 secs] > 2074695K->1469299K(2408448K), 0.1126290 secs] [Times: user=0.56 > sys=0.00, real=0.12 secs] > 2011-01-04T18:43:00.779-0500: 224553.612: [GC 224553.612: [ParNew: > 756317K->151552K(757760K), 0.1331190 secs] > 2075507K->1479534K(2408448K), 0.1334580 secs] [Times: user=0.61 > sys=0.00, real=0.13 secs] > 2011-01-04T18:43:00.914-0500: 224553.748: [GC [1 CMS-initial-mark: > 1327982K(1650688K)] 1479538K(2408448K), 0.1464550 secs] [Times: > user=0.15 sys=0.00, real=0.15 secs] > 2011-01-04T18:43:01.061-0500: 224553.894: [CMS-concurrent-mark-start] > 2011-01-04T18:43:02.661-0500: 224555.494: [CMS-concurrent-mark: > 1.583/1.600 secs] [Times: user=3.70 sys=0.04, real=1.60 secs] > 2011-01-04T18:43:02.661-0500: 224555.494: [CMS-concurrent-preclean-start] > 2011-01-04T18:43:02.675-0500: 224555.509: [CMS-concurrent-preclean: > 0.014/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] > 2011-01-04T18:43:02.676-0500: 224555.509: > [CMS-concurrent-abortable-preclean-start] > CMS: abort preclean due to time 2011-01-04T18:43:07.909-0500: > 224560.742: [CMS-concurrent-abortable-preclean: 3.899/5.234 secs] > [Times: user=4.31 sys=0.08, real=5.24 secs] > 2011-01-04T18:43:07.912-0500: 224560.745: [GC[YG occupancy: 289988 K > (757760 K)]224560.745: [Rescan (parallel) , 0.1425160 secs]224560.888: > [weak refs processing, 0.0000900 secs]224560.888: [class unloading, > 0.1369840 secs]224561.025: [scrub symbol & string tables, 0.0474080 > secs] [1 CMS-remark: 1327982K(1650688K)] 1617971K(2408448K), 0.3377450 > secs] [Times: user=0.75 sys=0.00, real=0.34 secs] > 2011-01-04T18:43:08.250-0500: 224561.083: [CMS-concurrent-sweep-start] > 2011-01-04T18:43:09.138-0500: 224561.971: [CMS-concurrent-sweep: > 0.888/0.888 secs] [Times: user=0.90 sys=0.01, real=0.89 secs] > 2011-01-04T18:43:09.138-0500: 224561.972: [CMS-concurrent-reset-start] > 2011-01-04T18:43:09.142-0500: 224561.976: [CMS-concurrent-reset: > 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] > 2011-01-04T18:43:21.068-0500: 224573.902: [GC 224573.902: [ParNew: > 757360K->151551K(757760K), 0.1132670 secs] > 2060610K->1458489K(2408448K), 0.1135890 secs] [Times: user=0.59 > sys=0.00, real=0.11 secs] > 2011-01-04T18:43:46.517-0500: 224599.350: [GC 224599.350: [ParNew: > 757759K->151552K(757760K), 0.1540840 secs] > 2064697K->1475010K(2408448K), 0.1544610 secs] [Times: user=0.72 > sys=0.00, real=0.15 secs] > 2011-01-04T18:43:46.673-0500: 224599.506: [GC [1 CMS-initial-mark: > 1323458K(1650688K)] 1480665K(2408448K), 0.1355380 secs] [Times: > user=0.13 sys=0.00, real=0.14 secs] > 2011-01-04T18:43:46.809-0500: 224599.642: [CMS-concurrent-mark-start] > 2011-01-04T18:43:48.464-0500: 224601.297: [CMS-concurrent-mark: > 1.656/1.656 secs] [Times: user=3.44 sys=0.04, real=1.66 secs] > 2011-01-04T18:43:48.464-0500: 224601.297: [CMS-concurrent-preclean-start] > 2011-01-04T18:43:48.478-0500: 224601.311: [CMS-concurrent-preclean: > 0.013/0.014 secs] [Times: user=0.01 sys=0.00, real=0.01 secs] > 2011-01-04T18:43:48.478-0500: 224601.311: > [CMS-concurrent-abortable-preclean-start] > CMS: abort preclean due to time 2011-01-04T18:43:53.604-0500: > 224606.437: [CMS-concurrent-abortable-preclean: 4.402/5.126 secs] > [Times: user=5.51 sys=0.13, real=5.13 secs] > 2011-01-04T18:43:53.606-0500: 224606.439: [GC[YG occupancy: 354174 K > (757760 K)]224606.439: [Rescan (parallel) , 0.0620250 secs]224606.501: > [weak refs processing, 0.0001870 secs]224606.501: [class unloading, > 0.1428830 secs]224606.644: [scrub symbol & string tables, 0.0630710 > secs] [1 CMS-remark: 1323458K(1650688K)] 1677633K(2408448K), 0.2790260 > secs] [Times: user=0.60 sys=0.00, real=0.28 secs] > 2011-01-04T18:43:53.886-0500: 224606.719: [CMS-concurrent-sweep-start] > 2011-01-04T18:43:54.763-0500: 224607.596: [CMS-concurrent-sweep: > 0.877/0.877 secs] [Times: user=0.96 sys=0.01, real=0.88 secs] > 2011-01-04T18:43:54.763-0500: 224607.596: [CMS-concurrent-reset-start] > 2011-01-04T18:43:54.767-0500: 224607.600: [CMS-concurrent-reset: > 0.004/0.004 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] > > > _______________________________________________ > hotspot-gc-use mailing list > hotspot-gc-use at openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From ycraig at cysystems.com Thu Jan 6 19:45:05 2011 From: ycraig at cysystems.com (craig yeldell) Date: Thu, 6 Jan 2011 14:45:05 -0500 Subject: CPU differences and CMS GC performance In-Reply-To: <4D25E590.7040202@oracle.com> References: <4D25E590.7040202@oracle.com> Message-ID: <6F344849-76A2-4405-AF85-401810BCE786@cysystems.com> 2011-01-04T18:40:57.595-0500: 317405.646: [CMS-concurrent-reset: 0.060/0.060 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] 2011-01-04T18:41:13.786-0500: 317421.837: [GC 317421.838: [ParNew: 693227K->86037K(757760K), 0.1202290 secs] 1969847K->1363829K (2408448K), 0.1209860 secs] [Times: user=0.60 sys=0.00, real=0.12 secs] 2011-01-04T18:41:55.496-0500: 317463.548: [GC 317463.548: [ParNew: 692245K->72000K(757760K), 0.1097190 secs] 1970037K->1351019K (2408448K), 0.1104820 secs] [Times: user=0.55 sys=0.00, real=0.11 secs] 2011-01-04T18:42:16.564-0500: 317484.615: [GC 317484.616: [ParNew: 678208K->77171K(757760K), 0.1477570 secs] 1957227K->1356301K (2408448K), 0.1485110 secs] [Times: user=0.65 sys=0.00, real=0.15 secs] 2011-01-04T18:42:36.084-0500: 317504.135: [GC 317504.136: [ParNew: 683379K->95237K(757760K), 0.1488350 secs] 1962509K->1378558K (2408448K), 0.1496090 secs] [Times: user=0.75 sys=0.00, real=0.15 secs] 2011-01-04T18:43:05.470-0500: 317533.521: [GC 317533.522: [ParNew: 701445K->78163K(757760K), 0.1416930 secs] 1984766K->1362521K (2408448K), 0.1424460 secs] [Times: user=0.71 sys=0.00, real=0.15 secs] 2011-01-04T18:43:45.488-0500: 317573.540: [GC 317573.540: [ParNew: 684371K->77448K(757760K), 0.1396650 secs] 1968729K->1363169K (2408448K), 0.1404410 secs] [Times: user=0.64 sys=0.00, real=0.14 secs] 2011-01-04T18:44:23.197-0500: 317611.249: [GC 317611.249: [ParNew: 683656K->101827K(757760K), 0.1286880 secs] 1969377K->1387892K (2408448K), 0.1295040 secs] [Times: user=0.64 sys=0.00, real=0.13 secs] 2011-01-04T18:45:03.946-0500: 317651.997: [GC 317651.998: [ParNew: 708035K->82138K(757760K), 0.1496900 secs] 1994100K->1368999K (2408448K), 0.1504710 secs] On Jan 6, 2011, at 10:53 AM, Jon Masamitsu wrote: > 2011-01-04T18:40:57 -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From jon.masamitsu at oracle.com Thu Jan 6 21:09:27 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Thu, 06 Jan 2011 13:09:27 -0800 Subject: CPU differences and CMS GC performance In-Reply-To: <6F344849-76A2-4405-AF85-401810BCE786@cysystems.com> References: <4D25E590.7040202@oracle.com> <6F344849-76A2-4405-AF85-401810BCE786@cysystems.com> Message-ID: <4D262F87.2070504@oracle.com> Craig, I looked at the heap occupancy in the first ParNew collection after the CMS sweep and it looks like there is about 1.36g of live data for the old server (for example from the first entry below) 2011-01-04T18:41:13.786-0500: 317421.837: [GC 317421.838: [ParNew: 693227K->86037K(757760K), 0.1202290 secs] 1969847K->1363829K(2408448K), 0.1209860 secs] [Times: user=0.60 sys=0.00, real=0.12 secs] In the new server the number looks more like 1.46g 2011-01-04T18:41:40.336-0500: 224473.169: [GC 224473.170: [ParNew: 757760K->151551K(757760K), 0.1246970 secs] 2061601K->1458549K(2408448K), 0.1250470 secs] [Times: user=0.67 sys=0.00, real=0.13 secs] *Maybe your application has a higher throughput on the new server and has more live data in flight. If you think that might be true a larger heap would help. You should verify what I've seen from these snippets. Or better yet if you have a way of telling how much data the application is using at any particular instant and that number is larger on the new server, then use a larger heap. Jon* On 01/06/11 11:45, craig yeldell wrote: > 2011-01-04T18:40:57.595-0500: 317405.646: [CMS-concurrent-reset: > 0.060/0.060 secs] [Times: user=0.06 sys=0.00, real=0.06 secs] > 2011-01-04T18:41:13.786-0500: 317421.837: [GC 317421.838: [ParNew: > 693227K->86037K(757760K), 0.1202290 secs] > 1969847K->1363829K(2408448K), 0.1209860 secs] [Times: user=0.60 > sys=0.00, real=0.12 secs] > 2011-01-04T18:41:55.496-0500: 317463.548: [GC 317463.548: [ParNew: > 692245K->72000K(757760K), 0.1097190 secs] > 1970037K->1351019K(2408448K), 0.1104820 secs] [Times: user=0.55 > sys=0.00, real=0.11 secs] > 2011-01-04T18:42:16.564-0500: 317484.615: [GC 317484.616: [ParNew: > 678208K->77171K(757760K), 0.1477570 secs] > 1957227K->1356301K(2408448K), 0.1485110 secs] [Times: user=0.65 > sys=0.00, real=0.15 secs] > 2011-01-04T18:42:36.084-0500: 317504.135: [GC 317504.136: [ParNew: > 683379K->95237K(757760K), 0.1488350 secs] > 1962509K->1378558K(2408448K), 0.1496090 secs] [Times: user=0.75 > sys=0.00, real=0.15 secs] > 2011-01-04T18:43:05.470-0500: 317533.521: [GC 317533.522: [ParNew: > 701445K->78163K(757760K), 0.1416930 secs] > 1984766K->1362521K(2408448K), 0.1424460 secs] [Times: user=0.71 > sys=0.00, real=0.15 secs] > 2011-01-04T18:43:45.488-0500: 317573.540: [GC 317573.540: [ParNew: > 684371K->77448K(757760K), 0.1396650 secs] > 1968729K->1363169K(2408448K), 0.1404410 secs] [Times: user=0.64 > sys=0.00, real=0.14 secs] > 2011-01-04T18:44:23.197-0500: 317611.249: [GC 317611.249: [ParNew: > 683656K->101827K(757760K), 0.1286880 secs] > 1969377K->1387892K(2408448K), 0.1295040 secs] [Times: user=0.64 > sys=0.00, real=0.13 secs] > 2011-01-04T18:45:03.946-0500: 317651.997: [GC 317651.998: [ParNew: > 708035K->82138K(757760K), 0.1496900 secs] > 1994100K->1368999K(2408448K), 0.1504710 secs] > > > On Jan 6, 2011, at 10:53 AM, Jon Masamitsu wrote: > >> 2011-01-04T18:40:57 > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From john.coomes at oracle.com Fri Jan 7 05:28:20 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Jan 2011 05:28:20 +0000 Subject: hg: jdk7/hotspot-gc: 7 new changesets Message-ID: <20110107052820.D99B247A3C@hg.openjdk.java.net> Changeset: 4346ba98938b Author: ohair Date: 2010-12-21 16:44 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/4346ba98938b 6360517: ALT_MSDEVTOOLS_PATH and rc.exe location, and rebase location Reviewed-by: ksrini ! Makefile ! README-builds.html Changeset: dc9eb519c6ed Author: ohair Date: 2010-12-22 12:25 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/dc9eb519c6ed 7003845: README-builds document proper location of forest extension, provide alternatives Reviewed-by: robilad ! README ! README-builds.html + get_source.sh + make/scripts/hgforest.sh Changeset: 4d044e6e1080 Author: ohair Date: 2010-12-22 12:27 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/4d044e6e1080 Merge ! README-builds.html Changeset: c1af03f88627 Author: ohair Date: 2010-12-23 18:41 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/c1af03f88627 7008723: Remove binary plugs creation and use from openjdk Reviewed-by: mchung, andrew, aph, dholmes ! Makefile ! README-builds.html Changeset: d0eb51cc458a Author: ohair Date: 2010-12-24 11:16 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/d0eb51cc458a Merge Changeset: 024a6755895b Author: ohair Date: 2010-12-28 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/024a6755895b 6962318: Update copyright year Reviewed-by: xdono ! make/Defs-internal.gmk ! make/deploy-rules.gmk ! make/hotspot-rules.gmk ! make/install-rules.gmk ! make/jprt.gmk ! make/sanity-rules.gmk + make/scripts/update_copyright_year.sh Changeset: 5c4df7e99277 Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/5c4df7e99277 Added tag jdk7-b124 for changeset 024a6755895b ! .hgtags From john.coomes at oracle.com Fri Jan 7 05:28:29 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Jan 2011 05:28:29 +0000 Subject: hg: jdk7/hotspot-gc/corba: 2 new changesets Message-ID: <20110107052833.2D27447A3D@hg.openjdk.java.net> Changeset: f90b3e014e83 Author: ohair Date: 2010-12-28 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/f90b3e014e83 6962318: Update copyright year Reviewed-by: xdono ! make/Makefile ! make/com/sun/corba/minclude/com_sun_corba_se_impl_io.jmk ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/Rules.gmk ! make/common/shared/Defs-java.gmk ! make/common/shared/Defs-linux.gmk ! make/common/shared/Defs-solaris.gmk ! make/common/shared/Defs-windows.gmk ! make/common/shared/Defs.gmk ! make/org/omg/idl/Makefile ! make/sun/corba/Makefile ! make/sun/corba/core/Makefile ! make/sun/rmi/rmic/FILES.gmk ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java ! src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java ! src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java ! src/share/classes/com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java ! src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java ! src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Expression.java ! src/share/classes/javax/rmi/PortableRemoteObject.java ! src/share/classes/org/omg/CORBA/ORB.java ! src/share/classes/org/omg/CORBA/SetOverrideType.java ! src/share/classes/org/omg/CORBA/TCKind.java ! src/share/classes/org/omg/CORBA/UnknownUserException.java ! src/share/classes/org/omg/CORBA/portable/ServantObject.java ! src/share/classes/org/omg/CosNaming/nameservice.idl ! src/share/classes/org/omg/PortableInterceptor/Interceptors.idl ! src/share/classes/sun/corba/Bridge.java Changeset: 1ce58c72b789 Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/1ce58c72b789 Added tag jdk7-b124 for changeset f90b3e014e83 ! .hgtags From john.coomes at oracle.com Fri Jan 7 05:28:39 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Jan 2011 05:28:39 +0000 Subject: hg: jdk7/hotspot-gc/jaxp: 2 new changesets Message-ID: <20110107052840.04CFD47A3E@hg.openjdk.java.net> Changeset: 57ed1f3bec72 Author: ohair Date: 2010-12-28 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/57ed1f3bec72 6962318: Update copyright year Reviewed-by: xdono ! build.properties ! make/Makefile Changeset: 6c9bdee0cc3a Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/6c9bdee0cc3a Added tag jdk7-b124 for changeset 57ed1f3bec72 ! .hgtags From john.coomes at oracle.com Fri Jan 7 05:28:46 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Jan 2011 05:28:46 +0000 Subject: hg: jdk7/hotspot-gc/jaxws: 2 new changesets Message-ID: <20110107052846.55F4E47A3F@hg.openjdk.java.net> Changeset: 86f60e5b3975 Author: ohair Date: 2010-12-28 15:53 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/86f60e5b3975 6962318: Update copyright year Reviewed-by: xdono ! build.properties ! jaxws.properties ! make/Makefile Changeset: d72eea121c3b Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/d72eea121c3b Added tag jdk7-b124 for changeset 86f60e5b3975 ! .hgtags From john.coomes at oracle.com Fri Jan 7 05:29:17 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Jan 2011 05:29:17 +0000 Subject: hg: jdk7/hotspot-gc/jdk: 6 new changesets Message-ID: <20110107053035.5F0C847A40@hg.openjdk.java.net> Changeset: 4e70663f0163 Author: ohair Date: 2010-12-21 18:21 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/4e70663f0163 6360517: ALT_MSDEVTOOLS_PATH and rc.exe location, and rebase location Reviewed-by: ksrini ! make/Makefile ! make/common/shared/Compiler-gcc.gmk ! make/common/shared/Compiler-msvc.gmk ! make/common/shared/Defs-solaris.gmk ! make/common/shared/Defs-versions.gmk ! make/common/shared/Defs-windows.gmk ! make/common/shared/Defs.gmk ! make/common/shared/Sanity-Settings.gmk ! make/common/shared/Sanity.gmk ! make/jdk_generic_profile.sh Changeset: 217c842d710b Author: ohair Date: 2010-12-23 18:50 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/217c842d710b 7008723: Remove binary plugs creation and use from openjdk Reviewed-by: mchung, andrew, aph, dholmes ! README ! make/Makefile ! make/com/sun/jmx/Makefile ! make/common/Defs.gmk ! make/common/Library.gmk ! make/common/Program.gmk ! make/common/Release.gmk ! make/common/Sanity.gmk - make/common/internal/BinaryPlugs.gmk ! make/common/shared/Sanity-Settings.gmk ! make/common/shared/Sanity.gmk ! make/java/redist/Makefile ! make/javax/sound/Makefile ! make/jdk_generic_profile.sh ! make/netbeans/README ! make/sun/dcpr/Makefile ! make/sun/font/t2k/Makefile ! make/sun/management/Makefile Changeset: ab960e856d18 Author: ohair Date: 2010-12-24 11:17 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/ab960e856d18 Merge - make/common/internal/BinaryPlugs.gmk ! make/common/shared/Defs-versions.gmk ! make/common/shared/Sanity.gmk Changeset: a06412e13bf7 Author: ohair Date: 2010-12-28 15:53 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/a06412e13bf7 6962318: Update copyright year Reviewed-by: xdono ! make/com/Makefile ! make/com/sun/Makefile ! make/com/sun/crypto/provider/Makefile ! make/com/sun/demo/Makefile ! make/com/sun/demo/jvmti/Makefile ! make/com/sun/java/Makefile ! make/com/sun/java/browser/Makefile ! make/com/sun/java/pack/Makefile ! make/com/sun/java/pack/prop/Makefile ! make/com/sun/jmx/Makefile ! make/com/sun/jndi/Makefile ! make/com/sun/jndi/cosnaming/Makefile ! make/com/sun/jndi/dns/Makefile ! make/com/sun/jndi/ldap/Makefile ! make/com/sun/jndi/rmi/Makefile ! make/com/sun/jndi/rmi/registry/Makefile ! make/com/sun/nio/Makefile ! make/com/sun/nio/sctp/FILES_java.gmk ! make/com/sun/nio/sctp/Makefile ! make/com/sun/nio/sctp/mapfile-vers ! make/com/sun/org/Makefile ! make/com/sun/org/apache/Makefile ! make/com/sun/org/apache/xml/Makefile ! make/com/sun/rowset/Makefile ! make/com/sun/script/Makefile ! make/com/sun/security/Makefile ! make/com/sun/security/auth/module/Makefile ! make/com/sun/servicetag/Makefile ! make/com/sun/tools/Makefile ! make/com/sun/tools/attach/Makefile ! make/com/sun/tracing/Makefile ! make/common/Cscope.gmk ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/Demo.gmk ! make/common/Library.gmk ! make/common/Modules.gmk ! make/common/Program.gmk ! make/common/Release.gmk ! make/common/Sanity.gmk ! make/common/internal/Resources.gmk ! make/common/shared/Compiler-sun.gmk ! make/common/shared/Defs-control.gmk ! make/common/shared/Defs-java.gmk ! make/common/shared/Defs-linux.gmk ! make/common/shared/Defs-utils.gmk ! make/docs/CORE_PKGS.gmk ! make/docs/NON_CORE_PKGS.gmk ! make/java/Makefile ! make/java/awt/Makefile ! make/java/dyn/Makefile ! make/java/fdlibm/Makefile ! make/java/hpi/Makefile ! make/java/hpi/hpi_common.gmk ! make/java/hpi/native/Makefile ! make/java/hpi/windows/Makefile ! make/java/instrument/Makefile ! make/java/java/Makefile ! make/java/java/genlocales.gmk ! make/java/java_crw_demo/Makefile ! make/java/java_hprof_demo/Makefile ! make/java/jli/Makefile ! make/java/logging/Makefile ! make/java/main/Makefile ! make/java/main/java/Makefile ! make/java/main/javaw/Makefile ! make/java/management/Makefile ! make/java/net/FILES_c.gmk ! make/java/net/Makefile ! make/java/net/mapfile-vers ! make/java/nio/FILES_java.gmk ! make/java/nio/Makefile ! make/java/nio/mapfile-linux ! make/java/nio/mapfile-solaris ! make/java/npt/Makefile ! make/java/redist/Makefile ! make/java/redist/fonts/Makefile ! make/java/redist/sajdi/Makefile ! make/java/sql/Makefile ! make/java/sun_nio/Makefile ! make/java/text/base/Makefile ! make/java/util/FILES_java.gmk ! make/java/verify/Makefile ! make/java/zip/Makefile ! make/javax/Makefile ! make/javax/crypto/Makefile ! make/javax/imageio/Makefile ! make/javax/print/Makefile ! make/javax/rmi/Makefile ! make/javax/sound/Makefile ! make/javax/sound/jsoundalsa/Makefile ! make/javax/sound/jsoundds/Makefile ! make/javax/sql/Makefile ! make/javax/swing/FILES.gmk ! make/javax/swing/Makefile ! make/javax/swing/beaninfo/SwingBeans.gmk ! make/javax/swing/plaf/Makefile ! make/jpda/Makefile ! make/jpda/back/Makefile ! make/jpda/transport/Makefile ! make/jpda/transport/shmem/Makefile ! make/jpda/transport/socket/Makefile ! make/jpda/tty/Makefile ! make/jprt.gmk ! make/jprt.properties ! make/launchers/Makefile ! make/mkdemo/Makefile ! make/mkdemo/applets/Makefile ! make/mkdemo/jfc/Makefile ! make/mkdemo/jni/Makefile ! make/mkdemo/jvmti/hprof/Makefile ! make/mkdemo/management/Makefile ! make/mkdemo/nio/Makefile ! make/mkdemo/nio/zipfs/Makefile ! make/mkdemo/scripting/Makefile ! make/mksample/Makefile ! make/mksample/dtrace/Makefile ! make/mksample/jmx/Makefile ! make/mksample/jmx/jmx-scandir/Makefile ! make/mksample/nbproject/Makefile ! make/mksample/nio/Makefile ! make/mksample/nio/file/Makefile ! make/mksample/nio/multicast/Makefile ! make/mksample/nio/server/Makefile ! make/mksample/scripting/Makefile ! make/mksample/scripting/scriptpad/Makefile ! make/mksample/webservices/EbayClient/Makefile ! make/mksample/webservices/EbayServer/Makefile ! make/mksample/webservices/Makefile ! make/modules/Makefile ! make/modules/modules.config ! make/modules/optional.depconfig ! make/modules/tools/Makefile ! make/modules/tools/nbproject/project.properties ! make/modules/tools/src/com/sun/classanalyzer/Module.java ! make/netbeans/world/build.xml ! make/org/Makefile ! make/org/ietf/Makefile ! make/sun/Makefile ! make/sun/applet/Makefile ! make/sun/awt/FILES_c_unix.gmk ! make/sun/awt/FILES_c_windows.gmk ! make/sun/awt/FILES_export_unix.gmk ! make/sun/awt/FILES_export_windows.gmk ! make/sun/awt/Makefile ! make/sun/awt/mapfile-mawt-vers ! make/sun/awt/mapfile-vers ! make/sun/awt/mapfile-vers-linux ! make/sun/cmm/Makefile ! make/sun/cmm/kcms/Makefile ! make/sun/cmm/lcms/FILES_c_unix.gmk ! make/sun/cmm/lcms/FILES_c_windows.gmk ! make/sun/cmm/lcms/Makefile ! make/sun/dcpr/Makefile ! make/sun/font/FILES_c.gmk ! make/sun/font/Makefile ! make/sun/font/t2k/Makefile ! make/sun/headless/Makefile ! make/sun/headless/mapfile-vers ! make/sun/image/Makefile ! make/sun/image/generic/Makefile ! make/sun/image/vis/Makefile ! make/sun/jar/Makefile ! make/sun/javazic/Makefile ! make/sun/jawt/Makefile ! make/sun/jconsole/Makefile ! make/sun/jdbc/Makefile ! make/sun/jdga/Makefile ! make/sun/jkernel/Makefile ! make/sun/jpeg/Makefile ! make/sun/launcher/Makefile ! make/sun/management/Makefile ! make/sun/native2ascii/Makefile ! make/sun/net/FILES_java.gmk ! make/sun/net/Makefile ! make/sun/net/others/Makefile ! make/sun/net/spi/Makefile ! make/sun/net/spi/nameservice/Makefile ! make/sun/net/spi/nameservice/dns/Makefile ! make/sun/nio/Makefile ! make/sun/nio/cs/FILES_java.gmk ! make/sun/nio/cs/Makefile ! make/sun/org/Makefile ! make/sun/org/mozilla/Makefile ! make/sun/org/mozilla/javascript/Makefile ! make/sun/pisces/Makefile ! make/sun/rmi/Makefile ! make/sun/rmi/cgi/Makefile ! make/sun/rmi/oldtools/Makefile ! make/sun/rmi/registry/Makefile ! make/sun/rmi/rmi/Makefile ! make/sun/rmi/rmic/Makefile ! make/sun/rmi/rmid/Makefile ! make/sun/security/Makefile ! make/sun/security/ec/Makefile ! make/sun/security/jgss/wrapper/Makefile ! make/sun/security/krb5/Makefile ! make/sun/security/mscapi/Makefile ! make/sun/security/pkcs11/Makefile ! make/sun/security/smartcardio/Makefile ! make/sun/serialver/Makefile ! make/sun/splashscreen/Makefile ! make/sun/text/Makefile ! make/sun/tools/Makefile ! make/sun/tracing/Makefile ! make/sun/tracing/dtrace/Makefile ! make/sun/xawt/FILES_c_unix.gmk ! make/sun/xawt/FILES_export_unix.gmk ! make/sun/xawt/Makefile ! make/sun/xawt/mapfile-vers ! make/tools/Makefile ! make/tools/freetypecheck/freetypecheck.c ! make/tools/src/build/tools/charsetmapping/JIS0213.java ! make/tools/src/build/tools/charsetmapping/Main.java ! make/tools/src/build/tools/charsetmapping/SBCS.java ! make/tools/src/build/tools/charsetmapping/Utils.java ! make/tools/src/build/tools/generatecharacter/GenerateCharacter.java ! make/tools/src/build/tools/jarreorder/JarReorder.java ! make/tools/src/build/tools/javazic/RuleDay.java ! src/share/bin/main.c ! src/share/bin/parse_manifest.c ! src/share/bin/wildcard.c ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java ! src/share/classes/com/sun/imageio/plugins/png/PNGImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/png/PNGImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriterSpi.java ! src/share/classes/com/sun/imageio/spi/FileImageInputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/FileImageOutputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/InputStreamImageInputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/OutputStreamImageOutputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/RAFImageInputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/RAFImageOutputStreamSpi.java ! src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsComboBoxUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java ! src/share/classes/com/sun/java/util/jar/pack/AdaptiveCoding.java ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java ! src/share/classes/com/sun/java/util/jar/pack/Code.java ! src/share/classes/com/sun/java/util/jar/pack/Coding.java ! src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java ! src/share/classes/com/sun/java/util/jar/pack/CodingMethod.java ! src/share/classes/com/sun/java/util/jar/pack/Fixups.java ! src/share/classes/com/sun/java/util/jar/pack/Histogram.java ! src/share/classes/com/sun/java/util/jar/pack/Instruction.java ! src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ! src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ! src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java ! src/share/classes/com/sun/jndi/dns/DnsClient.java ! src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java ! src/share/classes/com/sun/media/sound/AbstractMidiDevice.java ! src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java ! src/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java ! src/share/classes/com/sun/media/sound/ModelInstrument.java ! src/share/classes/com/sun/media/sound/SoftReceiver.java ! src/share/classes/com/sun/media/sound/SoftVoice.java ! src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java ! src/share/classes/com/sun/net/httpserver/Filter.java ! src/share/classes/com/sun/net/httpserver/Headers.java ! src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java ! src/share/classes/com/sun/net/httpserver/HttpsParameters.java ! src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java ! src/share/classes/com/sun/security/auth/LdapPrincipal.java ! src/share/classes/com/sun/security/sasl/CramMD5Client.java ! src/share/classes/com/sun/security/sasl/CramMD5Server.java ! src/share/classes/com/sun/security/sasl/ExternalClient.java ! src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java ! src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java ! src/share/classes/com/sun/servicetag/Registry.java ! src/share/classes/com/sun/servicetag/SunConnection.java ! src/share/classes/com/sun/servicetag/resources/register.html ! src/share/classes/com/sun/servicetag/resources/register_ja.html ! src/share/classes/com/sun/servicetag/resources/register_zh_CN.html ! src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java ! src/share/classes/java/awt/AWTEvent.java ! src/share/classes/java/awt/AlphaComposite.java ! src/share/classes/java/awt/Canvas.java ! src/share/classes/java/awt/Color.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/Dialog.java ! src/share/classes/java/awt/EventDispatchThread.java ! src/share/classes/java/awt/EventQueue.java ! src/share/classes/java/awt/FileDialog.java ! src/share/classes/java/awt/Font.java ! src/share/classes/java/awt/Frame.java ! src/share/classes/java/awt/GraphicsEnvironment.java ! src/share/classes/java/awt/GridBagConstraints.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/ScrollPane.java ! src/share/classes/java/awt/Scrollbar.java ! src/share/classes/java/awt/SequencedEvent.java ! src/share/classes/java/awt/SplashScreen.java ! src/share/classes/java/awt/Toolkit.java ! src/share/classes/java/awt/Window.java ! src/share/classes/java/awt/event/ActionEvent.java ! src/share/classes/java/awt/event/InputEvent.java ! src/share/classes/java/awt/image/IndexColorModel.java ! src/share/classes/java/awt/image/SampleModel.java ! src/share/classes/java/beans/MetaData.java ! src/share/classes/java/beans/XMLDecoder.java ! src/share/classes/java/dyn/Linkage.java ! src/share/classes/java/dyn/MethodType.java ! src/share/classes/java/dyn/package-info.java ! src/share/classes/java/io/Bits.java ! src/share/classes/java/io/BufferedInputStream.java ! src/share/classes/java/io/ByteArrayInputStream.java ! src/share/classes/java/io/ByteArrayOutputStream.java ! src/share/classes/java/io/Closeable.java ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/java/io/FilterInputStream.java ! src/share/classes/java/io/ObjectInput.java ! src/share/classes/java/io/ObjectOutput.java ! src/share/classes/java/io/PushbackInputStream.java ! src/share/classes/java/io/package.html ! src/share/classes/java/lang/AbstractStringBuilder.java ! src/share/classes/java/lang/AssertionError.java ! src/share/classes/java/lang/Deprecated.java ! src/share/classes/java/lang/Error.java ! src/share/classes/java/lang/Exception.java ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/lang/Math.java ! src/share/classes/java/lang/Object.java ! src/share/classes/java/lang/ProcessBuilder.java ! src/share/classes/java/lang/Readable.java ! src/share/classes/java/lang/RuntimeException.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/SuppressWarnings.java ! src/share/classes/java/lang/System.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/ThreadGroup.java ! src/share/classes/java/lang/reflect/Constructor.java ! src/share/classes/java/net/AbstractPlainSocketImpl.java ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/HttpCookie.java ! src/share/classes/java/net/HttpURLConnection.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/InetAddress.java ! src/share/classes/java/net/NetPermission.java ! src/share/classes/java/net/NetworkInterface.java ! src/share/classes/java/net/ServerSocket.java ! src/share/classes/java/net/SocketInputStream.java ! src/share/classes/java/net/SocksSocketImpl.java ! src/share/classes/java/net/URI.java ! src/share/classes/java/nio/Bits.java ! src/share/classes/java/nio/Direct-X-Buffer.java.template ! src/share/classes/java/nio/MappedByteBuffer.java ! src/share/classes/java/nio/StringCharBuffer.java ! src/share/classes/java/nio/channels/AsynchronousSocketChannel.java ! src/share/classes/java/nio/channels/FileLock.java ! src/share/classes/java/nio/channels/package-info.java ! src/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java ! src/share/classes/java/nio/channels/spi/AbstractSelector.java ! src/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java ! src/share/classes/java/nio/charset/Charset.java ! src/share/classes/java/nio/charset/package.html ! src/share/classes/java/nio/file/DirectoryStream.java ! src/share/classes/java/nio/file/FileTreeWalker.java ! src/share/classes/java/nio/file/FileVisitOption.java ! src/share/classes/java/nio/file/FileVisitor.java ! src/share/classes/java/nio/file/Files.java ! src/share/classes/java/nio/file/Path.java ! src/share/classes/java/nio/file/SecureDirectoryStream.java ! src/share/classes/java/nio/file/SimpleFileVisitor.java ! src/share/classes/java/security/IdentityScope.java ! src/share/classes/java/security/Security.java ! src/share/classes/java/security/cert/PKIXParameters.java ! src/share/classes/java/text/CollationElementIterator.java ! src/share/classes/java/text/DateFormat.java ! src/share/classes/java/text/MessageFormat.java ! src/share/classes/java/text/NumberFormat.java ! src/share/classes/java/text/RuleBasedBreakIterator.java ! src/share/classes/java/util/AbstractCollection.java ! src/share/classes/java/util/AbstractList.java ! src/share/classes/java/util/AbstractMap.java ! src/share/classes/java/util/ArrayList.java ! src/share/classes/java/util/Arrays.java ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Collections.java ! src/share/classes/java/util/ConcurrentModificationException.java ! src/share/classes/java/util/Currency.java ! src/share/classes/java/util/Date.java ! src/share/classes/java/util/FormattableFlags.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/LinkedList.java ! src/share/classes/java/util/List.java ! src/share/classes/java/util/ListResourceBundle.java ! src/share/classes/java/util/PriorityQueue.java ! src/share/classes/java/util/Properties.java ! src/share/classes/java/util/Random.java ! src/share/classes/java/util/Scanner.java ! src/share/classes/java/util/Stack.java ! src/share/classes/java/util/TreeMap.java ! src/share/classes/java/util/TreeSet.java ! src/share/classes/java/util/Vector.java ! src/share/classes/java/util/XMLUtils.java ! src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java ! src/share/classes/java/util/jar/JarInputStream.java ! src/share/classes/java/util/logging/LogRecord.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/spi/CurrencyNameProvider.java ! src/share/classes/java/util/spi/LocaleServiceProvider.java ! src/share/classes/java/util/zip/Deflater.java ! src/share/classes/java/util/zip/ZipFile.java ! src/share/classes/javax/imageio/stream/ImageInputStream.java ! src/share/classes/javax/management/remote/JMXServiceURL.java ! src/share/classes/javax/naming/event/EventDirContext.java ! src/share/classes/javax/naming/ldap/Control.java ! src/share/classes/javax/naming/ldap/ControlFactory.java ! src/share/classes/javax/naming/ldap/ExtendedRequest.java ! src/share/classes/javax/naming/ldap/ExtendedResponse.java ! src/share/classes/javax/naming/ldap/LdapName.java ! src/share/classes/javax/naming/ldap/Rdn.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotification.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotificationListener.java ! src/share/classes/javax/net/SocketFactory.java ! src/share/classes/javax/net/ssl/SSLContext.java ! src/share/classes/javax/print/DocFlavor.java ! src/share/classes/javax/sound/midi/MidiDevice.java ! src/share/classes/javax/sound/midi/MidiSystem.java ! src/share/classes/javax/sound/midi/Receiver.java ! src/share/classes/javax/sound/midi/Transmitter.java ! src/share/classes/javax/sound/sampled/Line.java ! src/share/classes/javax/swing/AbstractButton.java ! src/share/classes/javax/swing/DebugGraphics.java ! src/share/classes/javax/swing/DefaultDesktopManager.java ! src/share/classes/javax/swing/GroupLayout.java ! src/share/classes/javax/swing/JColorChooser.java ! src/share/classes/javax/swing/JComponent.java ! src/share/classes/javax/swing/JDesktopPane.java ! src/share/classes/javax/swing/JEditorPane.java ! src/share/classes/javax/swing/JLayer.java ! src/share/classes/javax/swing/JList.java ! src/share/classes/javax/swing/JSplitPane.java ! src/share/classes/javax/swing/JTabbedPane.java ! src/share/classes/javax/swing/JTextField.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/JViewport.java ! src/share/classes/javax/swing/Popup.java ! src/share/classes/javax/swing/RepaintManager.java ! src/share/classes/javax/swing/SwingUtilities.java ! src/share/classes/javax/swing/ToolTipManager.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/javax/swing/plaf/LayerUI.java ! src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java ! src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java ! src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java ! src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java ! src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java ! src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java ! src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java ! src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java ! src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java ! src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthListUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java ! src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthParser.java ! src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java ! src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java ! src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java ! src/share/classes/javax/swing/table/DefaultTableCellRenderer.java ! src/share/classes/javax/swing/text/DefaultCaret.java ! src/share/classes/javax/swing/text/DefaultEditorKit.java ! src/share/classes/javax/swing/text/DefaultFormatter.java ! src/share/classes/javax/swing/text/DefaultHighlighter.java ! src/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/share/classes/javax/swing/text/GlyphView.java ! src/share/classes/javax/swing/text/InternationalFormatter.java ! src/share/classes/javax/swing/text/JTextComponent.java ! src/share/classes/javax/swing/text/MaskFormatter.java ! src/share/classes/javax/swing/text/NumberFormatter.java ! src/share/classes/javax/swing/text/PlainDocument.java ! src/share/classes/javax/swing/text/TabSet.java ! src/share/classes/javax/swing/text/Utilities.java ! src/share/classes/javax/swing/text/WrappedPlainView.java ! src/share/classes/javax/swing/text/html/FormView.java ! src/share/classes/javax/swing/text/html/HTMLDocument.java ! src/share/classes/javax/swing/text/html/MinimalHTMLWriter.java ! src/share/classes/javax/swing/text/html/StyleSheet.java ! src/share/classes/javax/swing/text/html/parser/Parser.java ! src/share/classes/javax/swing/text/rtf/AbstractFilter.java ! src/share/classes/sun/applet/resources/MsgAppletViewer.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_zh_CN.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/EmbeddedFrame.java ! src/share/classes/sun/awt/HKSCS.java ! src/share/classes/sun/awt/PlatformFont.java ! src/share/classes/sun/awt/SunToolkit.java ! src/share/classes/sun/awt/UngrabEvent.java ! src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java ! src/share/classes/sun/awt/image/BufImgSurfaceData.java ! src/share/classes/sun/awt/image/ImageRepresentation.java ! src/share/classes/sun/awt/image/PNGImageDecoder.java ! src/share/classes/sun/dyn/AdapterMethodHandle.java ! src/share/classes/sun/dyn/BoundMethodHandle.java ! src/share/classes/sun/dyn/CallSiteImpl.java ! src/share/classes/sun/dyn/FilterGeneric.java ! src/share/classes/sun/dyn/FilterOneArgument.java ! src/share/classes/sun/dyn/FromGeneric.java ! src/share/classes/sun/dyn/Invokers.java ! src/share/classes/sun/dyn/MethodTypeImpl.java ! src/share/classes/sun/dyn/SpreadGeneric.java ! src/share/classes/sun/dyn/ToGeneric.java ! src/share/classes/sun/dyn/empty/Empty.java ! src/share/classes/sun/dyn/package-info.java ! src/share/classes/sun/dyn/util/BytecodeDescriptor.java ! src/share/classes/sun/dyn/util/BytecodeName.java ! src/share/classes/sun/dyn/util/ValueConversions.java ! src/share/classes/sun/dyn/util/VerifyAccess.java ! src/share/classes/sun/dyn/util/VerifyType.java ! src/share/classes/sun/dyn/util/Wrapper.java ! src/share/classes/sun/font/FontManagerFactory.java ! src/share/classes/sun/font/FontUtilities.java ! src/share/classes/sun/font/StrikeCache.java ! src/share/classes/sun/font/SunFontManager.java ! src/share/classes/sun/io/ByteToCharBig5.java ! src/share/classes/sun/io/ByteToCharBig5_HKSCS.java ! src/share/classes/sun/io/ByteToCharBig5_Solaris.java ! src/share/classes/sun/io/ByteToCharISO2022.java ! src/share/classes/sun/io/ByteToCharISO2022JP.java ! src/share/classes/sun/io/ByteToCharJISAutoDetect.java ! src/share/classes/sun/io/ByteToCharMS950_HKSCS.java ! src/share/classes/sun/io/ByteToCharUTF8.java ! src/share/classes/sun/io/CharToByteBig5.java ! src/share/classes/sun/io/CharToByteBig5_HKSCS.java ! src/share/classes/sun/io/CharToByteBig5_Solaris.java ! src/share/classes/sun/io/CharToByteDBCS_ASCII.java ! src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java ! src/share/classes/sun/io/CharToByteMS950_HKSCS.java ! src/share/classes/sun/io/CharToBytePCK.java ! src/share/classes/sun/io/CharToByteUnicode.java ! src/share/classes/sun/io/Converters.java ! src/share/classes/sun/java2d/Disposer.java ! src/share/classes/sun/java2d/HeadlessGraphicsEnvironment.java ! src/share/classes/sun/java2d/SurfaceData.java ! src/share/classes/sun/java2d/cmm/CMSManager.java ! src/share/classes/sun/java2d/cmm/lcms/LCMS.java ! src/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java ! src/share/classes/sun/java2d/loops/DrawParallelogram.java ! src/share/classes/sun/java2d/loops/FillParallelogram.java ! src/share/classes/sun/java2d/loops/GraphicsPrimitive.java ! src/share/classes/sun/java2d/loops/RenderLoops.java ! src/share/classes/sun/java2d/pipe/BufferedPaints.java ! src/share/classes/sun/java2d/pipe/LoopPipe.java ! src/share/classes/sun/java2d/pipe/RenderBuffer.java ! src/share/classes/sun/java2d/pisces/Curve.java ! src/share/classes/sun/java2d/pisces/Dasher.java ! src/share/classes/sun/java2d/pisces/Helpers.java ! src/share/classes/sun/java2d/pisces/PiscesCache.java ! src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java ! src/share/classes/sun/java2d/pisces/Renderer.java ! src/share/classes/sun/java2d/pisces/Stroker.java ! src/share/classes/sun/java2d/pisces/TransformingPathConsumer2D.java ! src/share/classes/sun/jkernel/DownloadManager.java ! src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java ! src/share/classes/sun/jvmstat/monitor/Monitor.java ! src/share/classes/sun/jvmstat/monitor/Units.java ! src/share/classes/sun/jvmstat/monitor/Variability.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfIntegerMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfLongMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringConstantMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringVariableMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java ! src/share/classes/sun/launcher/resources/launcher_de.properties ! src/share/classes/sun/launcher/resources/launcher_es.properties ! src/share/classes/sun/launcher/resources/launcher_fr.properties ! src/share/classes/sun/launcher/resources/launcher_it.properties ! src/share/classes/sun/launcher/resources/launcher_ja.properties ! src/share/classes/sun/launcher/resources/launcher_ko.properties ! src/share/classes/sun/launcher/resources/launcher_pt_BR.properties ! src/share/classes/sun/launcher/resources/launcher_sv.properties ! src/share/classes/sun/launcher/resources/launcher_zh_CN.properties ! src/share/classes/sun/launcher/resources/launcher_zh_TW.properties ! src/share/classes/sun/management/Flag.java ! src/share/classes/sun/management/resources/agent_de.properties ! src/share/classes/sun/management/resources/agent_es.properties ! src/share/classes/sun/management/resources/agent_fr.properties ! src/share/classes/sun/management/resources/agent_it.properties ! src/share/classes/sun/management/resources/agent_ja.properties ! src/share/classes/sun/management/resources/agent_ko.properties ! src/share/classes/sun/management/resources/agent_pt_BR.properties ! src/share/classes/sun/management/resources/agent_sv.properties ! src/share/classes/sun/management/resources/agent_zh_CN.properties ! src/share/classes/sun/management/resources/agent_zh_TW.properties ! src/share/classes/sun/misc/BootClassLoaderHook.java ! src/share/classes/sun/misc/Launcher.java ! src/share/classes/sun/misc/VM.java ! src/share/classes/sun/net/InetAddressCachePolicy.java ! src/share/classes/sun/net/NetworkClient.java ! src/share/classes/sun/net/ftp/impl/FtpClient.java ! src/share/classes/sun/net/httpserver/ChunkedInputStream.java ! src/share/classes/sun/net/httpserver/Event.java ! src/share/classes/sun/net/httpserver/ExchangeImpl.java ! src/share/classes/sun/net/httpserver/FixedLengthInputStream.java ! src/share/classes/sun/net/httpserver/HttpConnection.java ! src/share/classes/sun/net/httpserver/Request.java ! src/share/classes/sun/net/httpserver/SSLStreams.java ! src/share/classes/sun/net/httpserver/ServerConfig.java ! src/share/classes/sun/net/httpserver/ServerImpl.java ! src/share/classes/sun/net/www/MessageHeader.java ! src/share/classes/sun/net/www/MimeTable.java ! src/share/classes/sun/net/www/http/HttpClient.java ! src/share/classes/sun/net/www/protocol/file/FileURLConnection.java ! src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java ! src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java ! src/share/classes/sun/net/www/protocol/http/BasicAuthentication.java ! src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java ! src/share/classes/sun/nio/ch/CompletedFuture.java ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java ! src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java ! src/share/classes/sun/nio/ch/FileChannelImpl.java ! src/share/classes/sun/nio/ch/FileDispatcher.java ! src/share/classes/sun/nio/ch/IOUtil.java ! src/share/classes/sun/nio/ch/IOVecWrapper.java ! src/share/classes/sun/nio/ch/Interruptible.java ! src/share/classes/sun/nio/ch/ServerSocketAdaptor.java ! src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java ! src/share/classes/sun/nio/ch/SocketAdaptor.java ! src/share/classes/sun/nio/ch/SocketChannelImpl.java ! src/share/classes/sun/nio/ch/Util.java ! src/share/classes/sun/nio/cs/AbstractCharsetProvider.java ! src/share/classes/sun/nio/cs/UTF_32Coder.java ! src/share/classes/sun/nio/cs/UTF_8.java ! src/share/classes/sun/nio/cs/UnicodeEncoder.java ! src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java ! src/share/classes/sun/nio/cs/ext/Big5_Solaris.java ! src/share/classes/sun/nio/cs/ext/DoubleByte.java ! src/share/classes/sun/nio/cs/ext/EUC_JP.java ! src/share/classes/sun/nio/cs/ext/EUC_JP_LINUX.java ! src/share/classes/sun/nio/cs/ext/EUC_JP_Open.java ! src/share/classes/sun/nio/cs/ext/EUC_TW.java ! src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java ! src/share/classes/sun/nio/cs/ext/GB18030.java ! src/share/classes/sun/nio/cs/ext/IBM33722.java ! src/share/classes/sun/nio/cs/ext/IBM964.java ! src/share/classes/sun/nio/cs/ext/ISO2022.java ! src/share/classes/sun/nio/cs/ext/JISAutoDetect.java ! src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java ! src/share/classes/sun/nio/cs/ext/PCK.java ! src/share/classes/sun/nio/cs/ext/SJIS.java ! src/share/classes/sun/nio/fs/AbstractPath.java ! src/share/classes/sun/nio/fs/AbstractWatchKey.java ! src/share/classes/sun/rmi/registry/resources/rmiregistry_pt_BR.properties ! src/share/classes/sun/rmi/rmic/BatchEnvironment.java ! src/share/classes/sun/rmi/rmic/resources/rmic.properties ! src/share/classes/sun/rmi/rmic/resources/rmic_ja.properties ! src/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties ! src/share/classes/sun/rmi/server/resources/rmid_pt_BR.properties ! src/share/classes/sun/security/jca/Providers.java ! src/share/classes/sun/security/jgss/krb5/InitialToken.java ! src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java ! src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java ! src/share/classes/sun/security/provider/JavaKeyStore.java ! src/share/classes/sun/security/ssl/Krb5Helper.java ! src/share/classes/sun/security/ssl/Krb5Proxy.java ! src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java ! src/share/classes/sun/security/tools/JarSignerResources_ja.java ! src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java ! src/share/classes/sun/security/util/AuthResources_de.java ! src/share/classes/sun/security/util/AuthResources_es.java ! src/share/classes/sun/security/util/AuthResources_fr.java ! src/share/classes/sun/security/util/AuthResources_it.java ! src/share/classes/sun/security/util/AuthResources_ja.java ! src/share/classes/sun/security/util/AuthResources_ko.java ! src/share/classes/sun/security/util/AuthResources_pt_BR.java ! src/share/classes/sun/security/util/AuthResources_sv.java ! src/share/classes/sun/security/util/AuthResources_zh_CN.java ! src/share/classes/sun/security/util/AuthResources_zh_TW.java ! src/share/classes/sun/security/util/Resources_fr.java ! src/share/classes/sun/security/util/Resources_it.java ! src/share/classes/sun/security/util/Resources_pt_BR.java ! src/share/classes/sun/security/x509/X509Key.java ! src/share/classes/sun/swing/SwingUtilities2.java ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java ! src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java ! src/share/classes/sun/text/resources/FormatData_be.java ! src/share/classes/sun/text/resources/FormatData_fr.java ! src/share/classes/sun/text/resources/FormatData_fr_BE.java ! src/share/classes/sun/text/resources/FormatData_fr_CA.java ! src/share/classes/sun/text/resources/FormatData_fr_CH.java ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java ! src/share/classes/sun/tools/jstat/Arguments.java ! src/share/classes/sun/tools/jstat/ExpressionResolver.java ! src/share/classes/sun/tools/jstat/JStatLogger.java ! src/share/classes/sun/tools/jstat/Jstat.java ! src/share/classes/sun/tools/jstat/OptionFinder.java ! src/share/classes/sun/tools/jstat/OptionLister.java ! src/share/classes/sun/tools/jstat/resources/jstat_options ! src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java ! src/share/classes/sun/util/BuddhistCalendar.java ! src/share/classes/sun/util/calendar/ZoneInfoFile.java ! src/share/classes/sun/util/logging/PlatformLogger.java ! src/share/classes/sun/util/logging/resources/logging_pt_BR.properties ! src/share/classes/sun/util/resources/CalendarData_hu.properties ! src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties ! src/share/classes/sun/util/resources/LocaleNames.properties ! src/share/classes/sun/util/resources/LocaleNames_nl.properties ! src/share/classes/sun/util/resources/LocaleNames_zh.properties ! src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties ! src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Option.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Result.java ! src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java ! src/share/demo/jvmti/hprof/sample.makefile.txt ! src/share/javavm/export/classfile_constants.h ! src/share/native/com/sun/java/util/jar/pack/bytes.cpp ! src/share/native/com/sun/java/util/jar/pack/unpack.cpp ! src/share/native/common/check_code.c ! src/share/native/common/jdk_util.c ! src/share/native/common/jni_util.c ! src/share/native/java/io/RandomAccessFile.c ! src/share/native/java/io/io_util.c ! src/share/native/java/io/io_util.h ! src/share/native/java/lang/Class.c ! src/share/native/java/lang/ClassLoader.c ! src/share/native/java/lang/System.c ! src/share/native/java/lang/fdlibm/include/fdlibm.h ! src/share/native/java/lang/java_props.h ! src/share/native/java/lang/reflect/Proxy.c ! src/share/native/java/net/net_util.c ! src/share/native/java/nio/Bits.c ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/Inflater.c ! src/share/native/java/util/zip/ZipFile.c ! src/share/native/java/util/zip/zip_util.c ! src/share/native/java/util/zip/zip_util.h ! src/share/native/sun/awt/image/BufImgSurfaceData.c ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c ! src/share/native/sun/awt/medialib/awt_ImagingLib.c ! src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c ! src/share/native/sun/awt/medialib/safe_alloc.h ! src/share/native/sun/awt/splashscreen/splashscreen_gif.c ! src/share/native/sun/awt/splashscreen/splashscreen_png.c ! src/share/native/sun/font/AccelGlyphCache.c ! src/share/native/sun/font/fontscalerdefs.h ! src/share/native/sun/font/freetypeScaler.c ! src/share/native/sun/font/sunFont.c ! src/share/native/sun/java2d/cmm/lcms/LCMS.c ! src/share/native/sun/java2d/loops/Any3Byte.c ! src/share/native/sun/java2d/loops/Any4Byte.c ! src/share/native/sun/java2d/loops/AnyByte.c ! src/share/native/sun/java2d/loops/AnyInt.c ! src/share/native/sun/java2d/loops/AnyShort.c ! src/share/native/sun/java2d/loops/DrawParallelogram.c ! src/share/native/sun/java2d/loops/FillParallelogram.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ! src/share/native/sun/java2d/loops/LoopMacros.h ! src/share/native/sun/java2d/loops/ProcessPath.c ! src/share/native/sun/java2d/opengl/OGLTextRenderer.c ! src/share/native/sun/management/Flag.c ! src/share/native/sun/misc/VM.c ! src/share/native/sun/misc/VMSupport.c ! src/share/native/sun/security/ec/ECC_JNI.cpp ! src/share/sample/nio/file/Chmod.java ! src/share/sample/nio/file/Copy.java ! src/share/sample/nio/file/WatchDir.java ! src/solaris/bin/jexec.c ! src/solaris/classes/java/io/UnixFileSystem.java ! src/solaris/classes/java/lang/ProcessImpl.java ! src/solaris/classes/java/lang/UNIXProcess.java.linux ! src/solaris/classes/java/lang/UNIXProcess.java.solaris ! src/solaris/classes/sun/awt/UNIXToolkit.java ! src/solaris/classes/sun/awt/X11/InfoWindow.java ! src/solaris/classes/sun/awt/X11/XBaseWindow.java ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java ! src/solaris/classes/sun/awt/X11/XEmbeddedFrame.java ! src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java ! src/solaris/classes/sun/awt/X11/XFileDialogPeer.java ! src/solaris/classes/sun/awt/X11/XFramePeer.java ! src/solaris/classes/sun/awt/X11/XRobotPeer.java ! src/solaris/classes/sun/awt/X11/XTextAreaPeer.java ! src/solaris/classes/sun/awt/X11/XTrayIconPeer.java ! src/solaris/classes/sun/awt/X11/XWindow.java ! src/solaris/classes/sun/awt/X11/XWindowPeer.java ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/solaris/classes/sun/awt/X11InputMethod.java ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties ! src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties ! src/solaris/classes/sun/awt/motif/MToolkit.java ! src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java ! src/solaris/classes/sun/java2d/x11/X11SurfaceData.java ! src/solaris/classes/sun/net/NetHooks.java ! src/solaris/classes/sun/net/sdp/SdpProvider.java ! src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java ! src/solaris/classes/sun/nio/ch/InheritedChannel.java ! src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java ! src/solaris/classes/sun/nio/ch/PipeImpl.java ! src/solaris/classes/sun/nio/ch/PollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/SctpChannelImpl.java ! src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java ! src/solaris/classes/sun/nio/ch/SctpNet.java ! src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java ! src/solaris/classes/sun/nio/ch/SolarisAsynchronousChannelProvider.java ! src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT_Encoder.java ! src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java ! src/solaris/classes/sun/nio/fs/LinuxFileStore.java ! src/solaris/classes/sun/nio/fs/SolarisFileStore.java ! src/solaris/classes/sun/nio/fs/UnixDirectoryStream.java ! src/solaris/classes/sun/nio/fs/UnixFileStore.java ! src/solaris/classes/sun/nio/fs/UnixPath.java ! src/solaris/classes/sun/nio/fs/UnixSecureDirectoryStream.java ! src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java ! src/solaris/classes/sun/tools/attach/SolarisVirtualMachine.java ! src/solaris/demo/jni/Poller/Poller.c ! src/solaris/native/java/io/FileOutputStream_md.c ! src/solaris/native/java/io/UnixFileSystem_md.c ! src/solaris/native/java/io/canonicalize_md.c ! src/solaris/native/java/io/io_util_md.c ! src/solaris/native/java/io/io_util_md.h ! src/solaris/native/java/lang/java_props_md.c ! src/solaris/native/java/lang/locale_str.h ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/solaris/native/java/net/Inet6AddressImpl.c ! src/solaris/native/java/net/NetworkInterface.c ! src/solaris/native/java/net/PlainDatagramSocketImpl.c ! src/solaris/native/java/net/PlainSocketImpl.c ! src/solaris/native/java/net/net_util_md.c ! src/solaris/native/java/net/net_util_md.h ! src/solaris/native/java/nio/MappedByteBuffer.c ! src/solaris/native/sun/awt/awt.h ! src/solaris/native/sun/awt/awt_DrawingSurface.c ! src/solaris/native/sun/awt/awt_InputMethod.c ! src/solaris/native/sun/awt/awt_Robot.c ! src/solaris/native/sun/awt/awt_UNIXToolkit.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U16Func.c ! src/solaris/native/sun/awt/swing_GTKStyle.c ! src/solaris/native/sun/java2d/loops/java2d_Mlib.c ! src/solaris/native/sun/java2d/loops/vis_FuncArray.c ! src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.h ! src/solaris/native/sun/net/sdp/SdpSupport.c ! src/solaris/native/sun/net/spi/DefaultProxySelector.c ! src/solaris/native/sun/nio/ch/IOUtil.c ! src/solaris/native/sun/nio/ch/Net.c ! src/solaris/native/sun/nio/ch/SctpNet.c ! src/solaris/native/sun/nio/ch/SocketChannelImpl.c ! src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c ! src/solaris/native/sun/xawt/XlibWrapper.c ! src/solaris/native/sun/xawt/awt_Desktop.c ! src/windows/classes/java/io/Win32FileSystem.java ! src/windows/classes/java/lang/ProcessImpl.java ! src/windows/classes/sun/awt/Win32GraphicsDevice.java ! src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/awt/windows/WEmbeddedFrame.java ! src/windows/classes/sun/awt/windows/WFileDialogPeer.java ! src/windows/classes/sun/awt/windows/WFramePeer.java ! src/windows/classes/sun/awt/windows/WInputMethod.java ! src/windows/classes/sun/awt/windows/WPrintDialogPeer.java ! src/windows/classes/sun/awt/windows/WToolkit.java ! src/windows/classes/sun/awt/windows/WWindowPeer.java ! src/windows/classes/sun/awt/windows/fontconfig.properties ! src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java ! src/windows/classes/sun/nio/ch/FileDispatcherImpl.java ! src/windows/classes/sun/nio/ch/WindowsAsynchronousChannelProvider.java ! src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java ! src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java ! src/windows/classes/sun/nio/fs/WindowsChannelFactory.java ! src/windows/classes/sun/nio/fs/WindowsDirectoryStream.java ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp ! src/windows/native/common/jni_util_md.c ! src/windows/native/java/io/FileOutputStream_md.c ! src/windows/native/java/io/WinNTFileSystem_md.c ! src/windows/native/java/io/io_util_md.c ! src/windows/native/java/io/io_util_md.h ! src/windows/native/java/lang/ProcessImpl_md.c ! src/windows/native/java/lang/java_props_md.c ! src/windows/native/java/net/NetworkInterface_winXP.c ! src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c ! src/windows/native/java/net/net_util_md.h ! src/windows/native/java/nio/MappedByteBuffer.c ! src/windows/native/java/util/TimeZone_md.c ! src/windows/native/sun/font/fontpath.c ! src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.cpp ! src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp ! src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.c ! src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp ! src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ! src/windows/native/sun/java2d/windows/WindowsFlags.cpp ! src/windows/native/sun/jkernel/DownloadDialog.cpp ! src/windows/native/sun/jkernel/DownloadHelper.cpp ! src/windows/native/sun/jkernel/kernel.rc ! src/windows/native/sun/jkernel/kernel_pt_BR.rc ! src/windows/native/sun/jkernel/stdafx.h ! src/windows/native/sun/net/spi/DefaultProxySelector.c ! src/windows/native/sun/nio/ch/DatagramChannelImpl.c ! src/windows/native/sun/nio/ch/FileDispatcherImpl.c ! src/windows/native/sun/nio/ch/Net.c ! src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c ! src/windows/native/sun/nio/ch/SocketChannelImpl.c ! src/windows/native/sun/nio/ch/SocketDispatcher.c ! src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c ! src/windows/native/sun/nio/ch/WindowsSelectorImpl.c ! src/windows/native/sun/nio/ch/nio_util.h ! src/windows/native/sun/windows/WPrinterJob.cpp ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt_BitmapUtil.cpp ! src/windows/native/sun/windows/awt_Choice.cpp ! src/windows/native/sun/windows/awt_Choice.h ! src/windows/native/sun/windows/awt_DataTransferer.cpp ! src/windows/native/sun/windows/awt_Desktop.cpp ! src/windows/native/sun/windows/awt_DesktopProperties.cpp ! src/windows/native/sun/windows/awt_Dialog.cpp ! src/windows/native/sun/windows/awt_DnDDS.cpp ! src/windows/native/sun/windows/awt_DrawingSurface.h ! src/windows/native/sun/windows/awt_FileDialog.cpp ! src/windows/native/sun/windows/awt_FileDialog.h ! src/windows/native/sun/windows/awt_Font.cpp ! src/windows/native/sun/windows/awt_InputMethod.cpp ! src/windows/native/sun/windows/awt_MenuItem.cpp ! src/windows/native/sun/windows/awt_PrintJob.cpp ! src/windows/native/sun/windows/awt_Robot.cpp ! src/windows/native/sun/windows/awt_TextArea.cpp ! src/windows/native/sun/windows/awt_TextComponent.h ! src/windows/native/sun/windows/awt_TextField.cpp ! src/windows/native/sun/windows/awt_TextField.h ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_Toolkit.h ! src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp ! src/windows/native/sun/windows/awt_Window.cpp ! src/windows/native/sun/windows/awtmsg.h ! test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java ! test/com/sun/crypto/provider/TLS/TestPremaster.java ! test/com/sun/crypto/provider/TLS/Utils.java ! test/com/sun/java/swing/plaf/gtk/Test6635110.java ! test/com/sun/jdi/PopAndInvokeTest.java ! test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh ! test/com/sun/net/httpserver/Test.java ! test/com/sun/net/httpserver/Test1.java ! test/com/sun/net/httpserver/Test11.java ! test/com/sun/net/httpserver/Test12.java ! test/com/sun/net/httpserver/Test13.java ! test/com/sun/net/httpserver/Test6a.java ! test/com/sun/net/httpserver/Test7a.java ! test/com/sun/net/httpserver/Test8a.java ! test/com/sun/net/httpserver/Test9.java ! test/com/sun/net/httpserver/Test9a.java ! test/com/sun/net/httpserver/bugs/6725892/Test.java ! test/com/sun/net/httpserver/bugs/B6361557.java ! test/com/sun/net/httpserver/bugs/B6373555.java ! test/com/sun/net/httpserver/bugs/B6401598.java ! test/com/sun/nio/sctp/SctpChannel/Connect.java ! test/com/sun/nio/sctp/SctpChannel/Send.java ! test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ! test/com/sun/nio/sctp/SctpMultiChannel/Send.java ! test/com/sun/servicetag/FindServiceTags.java ! test/com/sun/servicetag/JavaServiceTagTest1.java ! test/com/sun/servicetag/SystemRegistryTest.java ! test/com/sun/servicetag/Util.java ! test/com/sun/tools/attach/ProviderTests.sh ! test/com/sun/tracing/BasicFunctionality.java ! test/java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.java ! test/java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ! test/java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.java ! test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ! test/java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.java ! test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ! test/java/awt/regtesthelpers/process/ProcessCommunicator.java ! test/java/beans/Beans/Test4080522.java ! test/java/beans/EventHandler/Test6277246.java ! test/java/beans/EventHandler/Test6277266.java ! test/java/beans/Introspector/Test6277246.java ! test/java/beans/XMLEncoder/java_awt_GridBagConstraints.java ! test/java/io/BufferedReader/BigMark.java ! test/java/io/BufferedReader/ReadLineSync.java ! test/java/io/DataInputStream/OpsAfterClose.java ! test/java/io/DataInputStream/ReadFully.java ! test/java/io/File/Basic.java ! test/java/io/File/DeleteOnExit.java ! test/java/io/File/DeleteOnExitNPE.java ! test/java/io/File/IsHidden.java ! test/java/io/File/SetAccess.java ! test/java/io/File/SetReadOnly.java ! test/java/io/FileInputStream/LeadingSlash.java ! test/java/io/InputStream/OpsAfterClose.java ! test/java/io/InputStream/ReadParams.java ! test/java/io/InputStreamReader/GrowAfterEOF.java ! test/java/io/ObjectInputStream/ResolveProxyClass.java ! test/java/io/RandomAccessFile/EOF.java ! test/java/io/RandomAccessFile/ParameterCheck.java ! test/java/io/RandomAccessFile/ReadLine.java ! test/java/io/RandomAccessFile/Seek.java ! test/java/io/RandomAccessFile/WriteBytesChars.java ! test/java/io/RandomAccessFile/WriteUTF.java ! test/java/io/RandomAccessFile/skipBytes/SkipBytes.java ! test/java/io/Reader/Skip.java ! test/java/io/Reader/SkipNegative.java ! test/java/io/Serializable/ClassCastExceptionDetail/Read.java ! test/java/io/Serializable/auditStreamSubclass/AuditStreamSubclass.java ! test/java/io/Serializable/backRefCNFException/Read.java ! test/java/io/Serializable/checkModifiers/CheckModifiers.java ! test/java/io/Serializable/classDescFlagConflict/Read.java ! test/java/io/Serializable/classDescHooks/ClassDescHooks.java ! test/java/io/Serializable/duplicateSerialFields/Test.java ! test/java/io/Serializable/enum/badResolve/Read.java ! test/java/io/Serializable/enum/constantSubclasses/Read.java ! test/java/io/Serializable/enum/missingConstant/Read.java ! test/java/io/Serializable/evolution/RenamePackage/run.sh ! test/java/io/Serializable/fieldTypeString/Read.java ! test/java/io/Serializable/illegalHandle/Test.java ! test/java/io/Serializable/longString/LongString.java ! test/java/io/Serializable/oldTests/AnnotateClass.java ! test/java/io/Serializable/oldTests/ArrayFields.java ! test/java/io/Serializable/oldTests/ArraysOfArrays.java ! test/java/io/Serializable/oldTests/BinaryTree.java ! test/java/io/Serializable/oldTests/CircularList.java ! test/java/io/Serializable/oldTests/SimpleArrays.java ! test/java/io/Serializable/oldTests/WritePrimitive.java ! test/java/io/Serializable/packageAccess/Test.java ! test/java/io/Serializable/parents/EvolvedClass.java ! test/java/io/Serializable/parents/OriginalClass.java ! test/java/io/Serializable/proxy/Basic.java ! test/java/io/Serializable/proxy/skipMissing/Read.java ! test/java/io/Serializable/proxy/skipMissing/Write.java ! test/java/io/Serializable/readObjectNoData/Read.java ! test/java/io/Serializable/serialver/classpath/run.sh ! test/java/io/Serializable/serialver/nested/run.sh ! test/java/io/Serializable/skipWriteObject/Read.java ! test/java/io/Serializable/skippedObjCNFException/Read.java ! test/java/io/Serializable/stopCustomDeserialization/Read.java ! test/java/io/Serializable/unresolvedClassDesc/Read.java ! test/java/io/Serializable/unshared/Read.java ! test/java/io/Serializable/wrongReturnTypes/Read.java ! test/java/io/StreamTokenizer/Comment.java ! test/java/io/pathNames/GeneralWin32.java ! test/java/io/readBytes/ReadBytesBounds.java ! test/java/lang/ClassLoader/UninitializedParent.java ! test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh ! test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh ! test/java/lang/ClassLoader/defineClass/DefineClassByteBuffer.java ! test/java/lang/ClassLoader/findSystemClass/Loader.java ! test/java/lang/ProcessBuilder/Basic.java ! test/java/lang/Runtime/exec/ExecWithDir.java ! test/java/lang/String/Supplementary.java ! test/java/lang/StringBuffer/Supplementary.java ! test/java/lang/StringBuilder/Supplementary.java ! test/java/lang/StringCoding/CheckEncodings.sh ! test/java/lang/System/ExitFinalizersAndJIT.java ! test/java/lang/System/IgnoreNullSecurityManager.java ! test/java/lang/Thread/GenerifyStackTraces.java ! test/java/lang/Thread/StackTraces.java ! test/java/lang/annotation/ParameterAnnotations.java ! test/java/lang/management/ClassLoadingMXBean/LoadCounts.java ! test/java/lang/management/ManagementFactory/MXBeanProxyTest.java ! test/java/lang/management/MemoryMXBean/CollectionUsageThreshold.java ! test/java/lang/management/MemoryMXBean/CollectionUsageThresholdConcMarkSweepGC.sh ! test/java/lang/management/MemoryMXBean/LowMemoryTest.java ! test/java/lang/management/MemoryMXBean/MemoryManagement.java ! test/java/lang/management/MemoryMXBean/Pending.java ! test/java/lang/management/MemoryMXBean/ResetPeakMemoryUsage.java ! test/java/lang/management/MemoryPoolMXBean/ThresholdTest.java ! test/java/lang/management/RuntimeMXBean/UpTime.java ! test/java/lang/management/ThreadMXBean/AllThreadIds.java ! test/java/lang/management/ThreadMXBean/DisableTest.java ! test/java/lang/management/ThreadMXBean/EnableTest.java ! test/java/lang/management/ThreadMXBean/FindDeadlocks.java ! test/java/lang/management/ThreadMXBean/FindMonitorDeadlock.java ! test/java/lang/management/ThreadMXBean/Locks.java ! test/java/lang/reflect/Proxy/Boxing.java ! test/java/lang/reflect/Proxy/ClassRestrictions.java ! test/java/lang/reflect/Proxy/returnTypes/Test.java ! test/java/net/Authenticator/B4769350.java ! test/java/net/BindException/Test.java ! test/java/net/CookieHandler/CookieHandlerTest.java ! test/java/net/CookieHandler/TestHttpCookie.java ! test/java/net/DatagramSocket/DatagramTimeout.java ! test/java/net/DatagramSocket/SendSize.java ! test/java/net/Inet6Address/B6214234.java ! test/java/net/Inet6Address/B6558853.java ! test/java/net/Inet6Address/serialize/Serialize.java ! test/java/net/InetAddress/CheckJNI.java ! test/java/net/MulticastSocket/NoLoopbackPackets.java ! test/java/net/MulticastSocket/SetOutgoingIf.java ! test/java/net/ProxySelector/B6737819.java ! test/java/net/ResponseCache/B6181108.java ! test/java/net/ResponseCache/ResponseCacheTest.java ! test/java/net/ResponseCache/getResponseCode.java ! test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java ! test/java/net/Socket/CloseAvailable.java ! test/java/net/Socket/DeadlockTest.java ! test/java/net/Socket/LingerTest.java ! test/java/net/Socket/LinkLocal.java ! test/java/net/Socket/ProxyCons.java ! test/java/net/Socket/ReadTimeout.java ! test/java/net/Socket/SetReceiveBufferSize.java ! test/java/net/Socket/SetSoLinger.java ! test/java/net/Socket/ShutdownBoth.java ! test/java/net/Socket/SoTimeout.java ! test/java/net/Socket/Timeout.java ! test/java/net/Socket/UrgentDataTest.java ! test/java/net/Socket/asyncClose/BrokenPipe.java ! test/java/net/Socket/setReuseAddress/Restart.java ! test/java/net/SocketInputStream/SocketClosedException.java ! test/java/net/SocketInputStream/SocketTimeout.java ! test/java/net/URI/Test.java ! test/java/net/URL/GetContent.java ! test/java/net/URL/TestIPv6Addresses.java ! test/java/net/URLClassLoader/ClassLoad.java ! test/java/net/URLClassLoader/HttpTest.java ! test/java/net/URLClassLoader/closetest/CloseTest.java ! test/java/net/URLConnection/B5052093.java ! test/java/net/URLConnection/DisconnectAfterEOF.java ! test/java/net/URLConnection/HandleContentTypeWithAttrs.java ! test/java/net/URLConnection/HttpContinueStackOverflow.java ! test/java/net/URLConnection/Redirect307Test.java ! test/java/net/URLConnection/RedirectLimit.java ! test/java/net/URLConnection/ResendPostBody.java ! test/java/net/URLConnection/SetIfModifiedSince.java ! test/java/net/URLConnection/TimeoutTest.java ! test/java/net/URLConnection/URLConnectionHeaders.java ! test/java/net/URLConnection/ZeroContentLength.java ! test/java/net/URLConnection/contentHandler/UserContentHandler.java ! test/java/net/ipv6tests/B6521014.java ! test/java/net/ipv6tests/TcpTest.java ! test/java/net/ipv6tests/Tests.java ! test/java/nio/Buffer/StringCharBufferSliceTest.java ! test/java/nio/BufferPoolMXBean/Basic.java ! test/java/nio/MappedByteBuffer/Basic.java ! test/java/nio/MappedByteBuffer/Force.java ! test/java/nio/MappedByteBuffer/ZeroMap.java ! test/java/nio/channels/AsyncCloseAndInterrupt.java ! test/java/nio/channels/AsynchronousChannelGroup/Basic.java ! test/java/nio/channels/AsynchronousChannelGroup/GroupOfOne.java ! test/java/nio/channels/AsynchronousChannelGroup/Identity.java ! test/java/nio/channels/AsynchronousFileChannel/Basic.java ! test/java/nio/channels/AsynchronousFileChannel/Lock.java ! test/java/nio/channels/AsynchronousServerSocketChannel/Basic.java ! test/java/nio/channels/AsynchronousSocketChannel/Basic.java ! test/java/nio/channels/AsynchronousSocketChannel/Leaky.java ! test/java/nio/channels/Channels/Basic2.java ! test/java/nio/channels/Channels/Write.java ! test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java ! test/java/nio/channels/DatagramChannel/Connect.java ! test/java/nio/channels/DatagramChannel/EmptyBuffer.java ! test/java/nio/channels/DatagramChannel/NoSender.java ! test/java/nio/channels/DatagramChannel/ReceiveISA.java ! test/java/nio/channels/DatagramChannel/SRTest.java ! test/java/nio/channels/DatagramChannel/Sender.java ! test/java/nio/channels/DatagramChannel/SocketOptionTests.java ! test/java/nio/channels/FileChannel/Args.java ! test/java/nio/channels/FileChannel/ClosedChannelTransfer.java ! test/java/nio/channels/FileChannel/ExpandingMap.java ! test/java/nio/channels/FileChannel/Lock.java ! test/java/nio/channels/FileChannel/MapOverEnd.java ! test/java/nio/channels/FileChannel/MapReadOnly.java ! test/java/nio/channels/FileChannel/MapTest.java ! test/java/nio/channels/FileChannel/Mode.java ! test/java/nio/channels/FileChannel/Position.java ! test/java/nio/channels/FileChannel/Pread.java ! test/java/nio/channels/FileChannel/Pwrite.java ! test/java/nio/channels/FileChannel/Read.java ! test/java/nio/channels/FileChannel/ReadFull.java ! test/java/nio/channels/FileChannel/ReadToLimit.java ! test/java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java ! test/java/nio/channels/FileChannel/ScatteringRead.java ! test/java/nio/channels/FileChannel/Size.java ! test/java/nio/channels/FileChannel/Transfer.java ! test/java/nio/channels/FileChannel/TransferToChannel.java ! test/java/nio/channels/FileChannel/TransferToNonWritable.java ! test/java/nio/channels/FileChannel/Transfers.java ! test/java/nio/channels/FileChannel/Truncate.java ! test/java/nio/channels/FileChannel/TryLock.java ! test/java/nio/channels/FileChannel/Write.java ! test/java/nio/channels/Pipe/NonBlocking.java ! test/java/nio/channels/Pipe/SelectPipe.java ! test/java/nio/channels/SelectionKey/AtomicAttachTest.java ! test/java/nio/channels/Selector/BasicAccept.java ! test/java/nio/channels/Selector/BasicConnect.java ! test/java/nio/channels/Selector/ByteServer.java ! test/java/nio/channels/Selector/CheckLocking.java ! test/java/nio/channels/Selector/CloseInvalidatesKeys.java ! test/java/nio/channels/Selector/CloseThenRegister.java ! test/java/nio/channels/Selector/CloseWhenKeyIdle.java ! test/java/nio/channels/Selector/Connect.java ! test/java/nio/channels/Selector/ConnectWrite.java ! test/java/nio/channels/Selector/HelperSlowToDie.java ! test/java/nio/channels/Selector/KeysReady.java ! test/java/nio/channels/Selector/LotsOfChannels.java ! test/java/nio/channels/Selector/OpRead.java ! test/java/nio/channels/Selector/ReadAfterConnect.java ! test/java/nio/channels/Selector/RegAfterPreClose.java ! test/java/nio/channels/Selector/SelectAfterRead.java ! test/java/nio/channels/Selector/SelectAndCancel.java ! test/java/nio/channels/Selector/SelectWrite.java ! test/java/nio/channels/Selector/SelectorLimit.java ! test/java/nio/channels/Selector/SelectorTest.java ! test/java/nio/channels/Selector/WakeupNow.java ! test/java/nio/channels/Selector/WakeupOverflow.java ! test/java/nio/channels/Selector/WakeupSpeed.java ! test/java/nio/channels/Selector/lots_of_updates.sh ! test/java/nio/channels/ServerSocketChannel/SocketOptionTests.java ! test/java/nio/channels/SocketChannel/AdaptSocket.java ! test/java/nio/channels/SocketChannel/BigReadWrite.java ! test/java/nio/channels/SocketChannel/Bind.java ! test/java/nio/channels/SocketChannel/Close.java ! test/java/nio/channels/SocketChannel/CloseRegisteredChannel.java ! test/java/nio/channels/SocketChannel/CloseTimeoutChannel.java ! test/java/nio/channels/SocketChannel/IsConnectable.java ! test/java/nio/channels/SocketChannel/LocalAddress.java ! test/java/nio/channels/SocketChannel/OpenLeak.java ! test/java/nio/channels/SocketChannel/SocketInheritance.java ! test/java/nio/channels/SocketChannel/SocketOptionTests.java ! test/java/nio/channels/SocketChannel/Trivial.java ! test/java/nio/channels/SocketChannel/UnboundSocketTests.java ! test/java/nio/channels/SocketChannel/VectorIO.java ! test/java/nio/channels/SocketChannel/Write.java ! test/java/nio/channels/etc/Shadow.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/Provider1.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/Provider2.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/custom_provider.sh ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/ClosedStreams.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoTest.java ! test/java/nio/file/DirectoryStream/Basic.java ! test/java/nio/file/DirectoryStream/SecureDS.java ! test/java/nio/file/FileStore/Basic.java ! test/java/nio/file/Files/Misc.java ! test/java/nio/file/Files/PrintFileTree.java ! test/java/nio/file/Files/SkipSiblings.java ! test/java/nio/file/Files/TerminateWalk.java ! test/java/nio/file/Files/WalkWithSecurity.java ! test/java/nio/file/Files/walk_file_tree.sh ! test/java/nio/file/Path/CheckPermissions.java ! test/java/nio/file/Path/CopyAndMove.java ! test/java/nio/file/Path/InterruptCopy.java ! test/java/nio/file/Path/Misc.java ! test/java/nio/file/Path/PathOps.java ! test/java/nio/file/Path/delete_on_close.sh ! test/java/nio/file/TestUtil.java ! test/java/security/Provider/Turkish.java ! test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh ! test/java/util/Collection/BiggernYours.java ! test/java/util/Collection/IteratorAtEnd.java ! test/java/util/Collection/MOAT.java ! test/java/util/Collections/RacingCollections.java ! test/java/util/Deque/ChorusLine.java ! test/java/util/Formatter/Constructors.java ! test/java/util/Locale/PrintDefaultLocale.java ! test/java/util/Locale/data/deflocale.c ! test/java/util/Locale/data/deflocale.sh ! test/java/util/PluggableLocale/ExecTest.sh ! test/java/util/ResourceBundle/Bug4168625Test.java ! test/java/util/ResourceBundle/Bug6299235Test.sh ! test/java/util/ResourceBundle/Bug6359330.java ! test/java/util/ResourceBundle/Control/ExpirationTest.sh ! test/java/util/ResourceBundle/Test4300693.java ! test/java/util/ResourceBundle/TestBug4179766.java ! test/java/util/ServiceLoader/basic.sh ! test/java/util/concurrent/BlockingQueue/Interrupt.java ! test/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java ! test/java/util/concurrent/CopyOnWriteArrayList/EqualsRace.java ! test/java/util/concurrent/CopyOnWriteArraySet/RacingCows.java ! test/java/util/concurrent/CyclicBarrier/Basic.java ! test/java/util/concurrent/Executors/AutoShutdown.java ! test/java/util/concurrent/Executors/Throws.java ! test/java/util/concurrent/FutureTask/BlockingTaskExecutor.java ! test/java/util/concurrent/FutureTask/Customized.java ! test/java/util/concurrent/ThreadPoolExecutor/ConfigChanges.java ! test/java/util/concurrent/ThreadPoolExecutor/Custom.java ! test/java/util/concurrent/ThreadPoolExecutor/ScheduledTickleService.java ! test/java/util/concurrent/ThreadPoolExecutor/ShutdownNowExecuteRace.java ! test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java ! test/java/util/concurrent/atomic/VMSupportsCS8.java ! test/java/util/concurrent/locks/Lock/FlakyMutex.java ! test/java/util/concurrent/locks/Lock/TimedAcquireLeak.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/Bug6571733.java ! test/java/util/regex/RegExTest.java ! test/java/util/zip/ZipFile/ReadZip.java ! test/javax/imageio/CachePremissionsTest/CachePermissionsTest.java ! test/javax/print/attribute/ServiceDialogTest.java ! test/javax/print/attribute/SidesPageRangesTest.java ! test/javax/script/ProviderTest.sh ! test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java ! test/javax/sound/midi/Gervill/SoftAudioSynthesizer/DummySourceDataLine.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/LoadAllInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstrument.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/RemapInstrument.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadAllInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstrument.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstruments.java ! test/javax/swing/AbstractButton/6711682/bug6711682.java ! test/javax/swing/JLayer/SerializationTest/SerializationTest.java ! test/javax/swing/JTextArea/Test6593649.java ! test/javax/swing/plaf/nimbus/Test6919629.java ! test/javax/swing/system/6799345/TestShutdown.java ! test/sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ! test/sun/java2d/GdiRendering/InsetClipping.java ! test/sun/java2d/SunGraphics2D/DrawImageBilinear.java ! test/sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ! test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java ! test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java ! test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.sh ! test/sun/jvmstat/testlibrary/utils.sh ! test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh ! test/sun/misc/BootClassLoaderHook/TestHook.java ! test/sun/net/ftp/FtpGetContent.java ! test/sun/net/ftp/FtpURL.java ! test/sun/net/sdp/ProbeIB.java ! test/sun/net/sdp/sanity.sh ! test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingTest.java ! test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java ! test/sun/net/www/http/ChunkedOutputStream/Test.java ! test/sun/net/www/http/HttpClient/B6726695.java ! test/sun/net/www/http/HttpClient/MultiThreadTest.java ! test/sun/net/www/http/HttpClient/ProxyTest.java ! test/sun/net/www/http/KeepAliveCache/B5045306.java ! test/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java ! test/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java ! test/sun/net/www/httptest/HttpServer.java ! test/sun/net/www/protocol/http/ChunkedErrorStream.java ! test/sun/net/www/protocol/http/DigestTest.java ! test/sun/nio/ch/Basic.java ! test/sun/nio/ch/TempBuffer.java ! test/sun/nio/cs/CheckHistoricalNames.java ! test/sun/nio/cs/FindDecoderBugs.java ! test/sun/nio/cs/ReadZero.java ! test/sun/nio/cs/Test4200310.sh ! test/sun/nio/cs/Test4206507.java ! test/sun/nio/cs/TestStringCoding.java ! test/sun/nio/cs/TestX11CNS.java ! test/sun/rmi/rmic/manifestClassPath/run.sh ! test/sun/security/krb5/auto/Context.java ! test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java ! test/sun/security/pkcs11/tls/TestPremaster.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6226610.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java ! test/sun/text/resources/LocaleDataTest.java ! test/sun/tools/jps/jps-Vvml_2.sh ! test/sun/tools/jps/jps-help.sh ! test/sun/tools/jps/jps-m_2.sh ! test/sun/tools/jstat/jstatHelp.sh ! test/sun/tools/jstat/jstatOptions1.sh ! test/sun/tools/jstatd/jstatdDefaults.sh ! test/sun/tools/jstatd/jstatdExternalRegistry.sh ! test/sun/tools/jstatd/jstatdPort.sh ! test/sun/tools/jstatd/jstatdServerName.sh ! test/sun/tools/jstatd/jstatdUsage1.sh ! test/sun/util/logging/PlatformLoggerTest.java ! test/sun/util/resources/TimeZone/Bug6317929.java ! test/tools/jar/JarEntryTime.java ! test/tools/jar/index/MetaInf.java ! test/tools/launcher/ChangeDataModel.sh ! test/tools/launcher/DefaultLocaleTest.sh ! test/tools/launcher/UnicodeTest.sh Changeset: 1c72adc9d5f3 Author: ohair Date: 2010-12-28 16:12 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/1c72adc9d5f3 6991482: Add global jdk makefile options to silence some VS2010 warnings Reviewed-by: prr ! make/common/Defs-windows.gmk ! make/common/shared/Defs-windows.gmk ! make/common/shared/Sanity-Settings.gmk Changeset: 0a56bdd709d0 Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/0a56bdd709d0 Added tag jdk7-b124 for changeset 1c72adc9d5f3 ! .hgtags From john.coomes at oracle.com Fri Jan 7 05:30:59 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 07 Jan 2011 05:30:59 +0000 Subject: hg: jdk7/hotspot-gc/langtools: 51 new changesets Message-ID: <20110107053236.1386A47A41@hg.openjdk.java.net> Changeset: fb79ba6eb2e1 Author: cl Date: 2010-11-22 14:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/fb79ba6eb2e1 Added tag jdk7-b119 for changeset 814561077c44 ! .hgtags Changeset: d53cf2e9ad6c Author: ohair Date: 2010-12-03 19:45 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/d53cf2e9ad6c Merge ! .hgtags Changeset: abaceae7c9f8 Author: jjg Date: 2010-11-17 15:07 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/abaceae7c9f8 7000973: isBogus needs to be called on the to-be-returned entry, not on the current entry Reviewed-by: jjg Contributed-by: jan.lahoda at oracle.com ! src/share/classes/com/sun/tools/javac/code/Scope.java Changeset: 03177f49411d Author: jjg Date: 2010-11-18 16:13 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/03177f49411d 6999438: remove support for exotic identifiers from JDK 7 Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/parser/Scanner.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties - test/tools/javac/diags/examples/EmptyBytecodeIdent.java - test/tools/javac/diags/examples/IllegalBytecodeIdentChar.java - test/tools/javac/diags/examples/UnclosedBytecodeIdent.java - test/tools/javac/diags/examples/UnsupportedExoticID.java ! test/tools/javac/meth/InvokeDyn.java ! test/tools/javac/meth/InvokeDynTrans.java ! test/tools/javac/meth/InvokeDynTrans.out - test/tools/javac/quid/QuotedIdent.java - test/tools/javac/quid/QuotedIdent2.java + test/tools/javac/quid/T6999438.java + test/tools/javac/quid/T6999438.out Changeset: 2536dedd897e Author: mcimadamore Date: 2010-11-23 11:08 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/2536dedd897e 6995200: JDK 7 compiler crashes when type-variable is inferred from expected primitive type Summary: 15.12.2.8 should use boxing when expected type in assignment context is a primitive type Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! test/tools/javac/generics/inference/6638712/T6638712a.java + test/tools/javac/generics/inference/6995200/T6995200.java Changeset: 285896f2227a Author: jjg Date: 2010-11-23 13:32 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/285896f2227a 6942366: javadoc no longer inherits doc from sourcepath Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java + test/tools/javadoc/6942366/T6942366.java + test/tools/javadoc/6942366/Test.java + test/tools/javadoc/6942366/p/Base.java Changeset: 79d0c48d361e Author: jjg Date: 2010-11-23 15:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/79d0c48d361e 7002346: javap test relies on location of scratch directory Reviewed-by: ksrini ! test/tools/javap/T6729471.java Changeset: d44d6d8493ad Author: jjg Date: 2010-11-29 10:09 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/d44d6d8493ad 7003006: add option to list directory in deterministic order Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Changeset: c44234f680da Author: jjg Date: 2010-11-29 14:15 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/c44234f680da 6900037: javac should warn if earlier -source is used and bootclasspath not set Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/code/Lint.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/BaseFileManager.java ! test/tools/javac/6341866/T6341866.java ! test/tools/javac/ClassFileModifiers/MemberModifiers.java + test/tools/javac/T6900037.java + test/tools/javac/T6900037.out ! test/tools/javac/TryWithResources/PlainTry.java ! test/tools/javac/annotations/neg/Dep.java ! test/tools/javac/diags/examples/AnnotationsNotSupported.java ! test/tools/javac/diags/examples/AssertAsIdentifier.java ! test/tools/javac/diags/examples/DiamondNotSupported.java ! test/tools/javac/diags/examples/EnumAsIdentifier.java ! test/tools/javac/diags/examples/EnumsNotSupported.java ! test/tools/javac/diags/examples/Expected2.java ! test/tools/javac/diags/examples/ForeachNotSupported.java ! test/tools/javac/diags/examples/GenericsNotSupported.java ! test/tools/javac/diags/examples/MulticatchNotSupported.java ! test/tools/javac/diags/examples/NeitherConditionalSubtype.java + test/tools/javac/diags/examples/SourceNoBootclasspath.java ! test/tools/javac/diags/examples/StaticImportNotSupported.java ! test/tools/javac/diags/examples/StringSwitchNotSupported.java ! test/tools/javac/diags/examples/TryResourceNotSupported.java ! test/tools/javac/diags/examples/TryWithoutCatchOrFinally.java ! test/tools/javac/diags/examples/UnsupportedBinaryLiteral.java ! test/tools/javac/diags/examples/UnsupportedFpLit.java ! test/tools/javac/diags/examples/UnsupportedUnderscoreLiteral.java ! test/tools/javac/diags/examples/VarargsNotSupported.java ! test/tools/javac/enum/6384542/T6384542.java ! test/tools/javac/enum/6384542/T6384542a.java ! test/tools/javac/literals/BadBinaryLiterals.java ! test/tools/javac/literals/BadUnderscoreLiterals.java ! test/tools/javac/processing/warnings/TestSourceVersionWarnings.java ! test/tools/javac/varargs/warning/Warn1.java Changeset: bcbc86cc5b31 Author: jjg Date: 2010-11-30 09:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/bcbc86cc5b31 7003477: Paths.isDefaultBootClassPath needs to be public Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/file/Paths.java Changeset: 1bf969e9792f Author: lana Date: 2010-12-06 20:35 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/1bf969e9792f Merge - test/tools/javac/diags/examples/EmptyBytecodeIdent.java - test/tools/javac/diags/examples/IllegalBytecodeIdentChar.java - test/tools/javac/diags/examples/UnclosedBytecodeIdent.java - test/tools/javac/diags/examples/UnsupportedExoticID.java - test/tools/javac/quid/QuotedIdent.java - test/tools/javac/quid/QuotedIdent2.java Changeset: 11e7b4c0476e Author: katleman Date: 2010-12-09 21:25 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/11e7b4c0476e Added tag jdk7-b121 for changeset 1bf969e9792f ! .hgtags Changeset: 9968ce958706 Author: cl Date: 2010-12-16 18:18 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/9968ce958706 Added tag jdk7-b122 for changeset 11e7b4c0476e ! .hgtags Changeset: 4f086529d05c Author: mfang Date: 2010-12-03 20:31 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/4f086529d05c 6522789: [zh_CN] translation of "enclosing class" in doclet is incorrect Reviewed-by: yhuang ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties Changeset: d9deecf9181b Author: mfang Date: 2010-12-05 18:18 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/d9deecf9181b Merge Changeset: a0331c79cea9 Author: ohair Date: 2010-12-15 15:30 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/a0331c79cea9 Merge Changeset: 98570f7ba610 Author: ohair Date: 2010-12-16 19:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/98570f7ba610 Merge Changeset: 90af8d87741f Author: bpatel Date: 2010-12-01 11:02 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/90af8d87741f 6851834: Javadoc doclet needs a structured approach to generate the output HTML. Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java - src/share/classes/com/sun/tools/doclets/formats/html/StylesheetWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/Comment.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlAttr.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlConstants.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocument.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTag.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/RawHtml.java + src/share/classes/com/sun/tools/doclets/formats/html/markup/StringContent.java ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeOptionalMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstructorWriter.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/EnumConstantWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/FieldWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/MethodWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/NestedClassWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties + src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DirectoryManager.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java ! test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java ! test/com/sun/javadoc/AccessH1/AccessH1.java ! test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java ! test/com/sun/javadoc/AccessSummary/AccessSummary.java ! test/com/sun/javadoc/AuthorDD/AuthorDD.java ! test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java ! test/com/sun/javadoc/MetaTag/MetaTag.java ! test/com/sun/javadoc/ValidHtml/ValidHtml.java ! test/com/sun/javadoc/VersionNumber/VersionNumber.java ! test/com/sun/javadoc/WindowTitles/WindowTitles.java ! test/com/sun/javadoc/constantValues/TestConstantValuesDriver.java ! test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java ! test/com/sun/javadoc/testClassTree/TestClassTree.java ! test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java ! test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java ! test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java ! test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java ! test/com/sun/javadoc/testHeadings/TestHeadings.java ! test/com/sun/javadoc/testHelpOption/TestHelpOption.java ! test/com/sun/javadoc/testHref/TestHref.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java + test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java + test/com/sun/javadoc/testHtmlDocument/testLink.html + test/com/sun/javadoc/testHtmlDocument/testMarkup.html ! test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java ! test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java ! test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java ! test/com/sun/javadoc/testIndex/TestIndex.java ! test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java ! test/com/sun/javadoc/testInterface/TestInterface.java ! test/com/sun/javadoc/testJavascript/TestJavascript.java ! test/com/sun/javadoc/testLinkOption/TestLinkOption.java ! test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java ! test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java ! test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java ! test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java ! test/com/sun/javadoc/testNavagation/TestNavagation.java ! test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java ! test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java ! test/com/sun/javadoc/testPackagePage/TestPackagePage.java ! test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java ! test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ! test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java ! test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java ! test/com/sun/javadoc/testStylesheet/TestStylesheet.java ! test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java ! test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java ! test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java ! test/com/sun/javadoc/testTaglets/TestTaglets.java ! test/com/sun/javadoc/testTaglets/taglets/Foo.java ! test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java ! test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java ! test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java ! test/com/sun/javadoc/testTypeParams/TestTypeParameters.java ! test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java ! test/com/sun/javadoc/testValueTag/TestValueTag.java ! test/com/sun/javadoc/testWarnings/TestWarnings.java Changeset: 7e3e9f6d013f Author: jjg Date: 2010-12-02 16:37 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/7e3e9f6d013f 7004029: intermittent failures compiling pack200 Summary: remove "bogus" entries from star-import scopes Reviewed-by: mcimadamore Contributed-by: per.bothner at oracle.com ! src/share/classes/com/sun/tools/javac/code/Scope.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/tree/JCTree.java + test/tools/javac/scope/HashCollisionTest.java + test/tools/javac/scope/StarImportTest.java Changeset: 28566c763dad Author: jjg Date: 2010-12-02 16:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/28566c763dad Merge - src/share/classes/com/sun/tools/doclets/formats/html/StylesheetWriter.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java Changeset: 9359f4222545 Author: mcimadamore Date: 2010-12-03 16:31 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/9359f4222545 6956758: NPE in com.sun.tools.javac.code.Symbol - isSubClass Summary: Use of TransTypes.cast() instead of TransTypes.coerce() causes NPE in Lower Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java + test/tools/javac/generics/6956758/T6956758neg.java + test/tools/javac/generics/6956758/T6956758neg.out + test/tools/javac/generics/6956758/T6956758pos.java Changeset: aa6605d883dc Author: mcimadamore Date: 2010-12-03 16:32 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/aa6605d883dc 7002837: Diamond: javac generates diamond inference errors when in 'finder' mode Summary: Javac should disable error messages when analyzing instance creation expression in 'diamond finder' mode Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/generics/diamond/7002837/T7002837.java Changeset: 91b4f44c9742 Author: jjh Date: 2010-12-03 13:47 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/91b4f44c9742 6990209: JCK7-compiler lang/ICLS/icls006/icls00603/icls00603a.html#icls00603src test fails. Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java Changeset: d53b87e07b13 Author: lana Date: 2010-12-05 15:26 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/d53b87e07b13 Merge Changeset: 5fb14e67c371 Author: mcimadamore Date: 2010-12-06 11:49 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/5fb14e67c371 7003744: Compiler error concerning final variables Summary: Flow analysis does not cleanup init/uninint bit masks after for-loop Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/util/Bits.java + test/tools/javac/DefiniteAssignment/7003744/T7003744a.java + test/tools/javac/DefiniteAssignment/7003744/T7003744b.java Changeset: 56f59723fddf Author: mcimadamore Date: 2010-12-06 11:50 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/56f59723fddf 7002070: If catch clause has an incompatible type, error pointer points to first exception type in list Summary: Attribution should check each component of a disjunctive type separately, rather than checking the corresponding lub() Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/multicatch/Neg06.java + test/tools/javac/multicatch/Neg06.out Changeset: 536ee9f126b1 Author: mcimadamore Date: 2010-12-06 11:51 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/536ee9f126b1 5088429: varargs overloading problem Summary: compiler implementation for overload resolution w/ varargs method does not match JLS Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Resolve.java + test/tools/javac/varargs/5088429/T5088429Neg01.java + test/tools/javac/varargs/5088429/T5088429Neg01.out + test/tools/javac/varargs/5088429/T5088429Neg02.java + test/tools/javac/varargs/5088429/T5088429Neg02.out + test/tools/javac/varargs/5088429/T5088429Pos01.java + test/tools/javac/varargs/5088429/T5088429Pos02.java Changeset: 3c32c90031fd Author: jjg Date: 2010-12-07 14:13 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/3c32c90031fd 6999210: javac should be able to warn of anomalous conditions in classfiles Reviewed-by: mcimadamore, darcy ! src/share/classes/com/sun/tools/javac/code/Lint.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java + test/tools/javac/T6999210.java ! test/tools/javac/annotations/6214965/T6214965.out ! test/tools/javac/annotations/6365854/test1.out ! test/tools/javac/annotations/6365854/test2.out ! test/tools/javac/diags/examples.not-yet.txt Changeset: acb02e1d5119 Author: jjg Date: 2010-12-08 13:42 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/acb02e1d5119 7004698: javap does not output CharacterRangeTable attributes correctly Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javap/AttributeWriter.java + test/tools/javap/T7004698.java Changeset: 23fc45d3a572 Author: darcy Date: 2010-12-08 21:21 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/23fc45d3a572 7003550: Loosen modeling requirements for annotation processing erroneous code Reviewed-by: jjg ! src/share/classes/javax/lang/model/element/package-info.java Changeset: 5ef88773462b Author: mcimadamore Date: 2010-12-09 15:50 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/5ef88773462b 7005095: Cast: compile reject sensible cast from final class to interface Summary: a previous fix to cast conversion has made the compiler too strict w.r.t. final cast Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/cast/7005095/T7005095neg.java + test/tools/javac/cast/7005095/T7005095neg.out + test/tools/javac/cast/7005095/T7005095pos.java Changeset: 1d625fbe6c22 Author: mcimadamore Date: 2010-12-09 15:50 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/1d625fbe6c22 6476118: compiler bug causes runtime ClassCastException for generics overloading Summary: compiler allows bridge methods to override unrelated method Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Scope.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/generics/6476118/T6476118a.java + test/tools/javac/generics/6476118/T6476118a.out + test/tools/javac/generics/6476118/T6476118b.java + test/tools/javac/generics/6476118/T6476118b.out + test/tools/javac/generics/6476118/T6476118c.java + test/tools/javac/generics/6476118/T6476118c.out + test/tools/javac/generics/6476118/T6476118d.java Changeset: e3df8d7a9752 Author: mcimadamore Date: 2010-12-09 15:50 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/e3df8d7a9752 7005371: Multicatch: assertion error while generating LocalVariableTypeTable attribute Summary: compiler crashes with assertion error if '-g' option is passed and source contains multicatch Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java + test/tools/javac/multicatch/7005371/SubTest.java + test/tools/javac/multicatch/7005371/T7005371.java Changeset: bcf44475aeee Author: jjg Date: 2010-12-09 08:24 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/bcf44475aeee 4917091: javac rejects array over 128 in length Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/jvm/Gen.java + test/tools/javac/4917091/Test255.java + test/tools/javac/4917091/Test256a.java + test/tools/javac/4917091/Test256a.out + test/tools/javac/4917091/Test256b.java + test/tools/javac/4917091/Test256b.out Changeset: 90914ac50868 Author: jjg Date: 2010-12-09 08:48 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/90914ac50868 6985202: no access to doc comments from Tree API Reviewed-by: mcimadamore ! src/share/classes/com/sun/source/util/Trees.java ! src/share/classes/com/sun/tools/javac/api/JavacTrees.java + test/tools/javac/api/TestDocComments.java Changeset: 4dd1c0176d81 Author: jjg Date: 2010-12-09 18:33 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/4dd1c0176d81 7005856: avoid name clash for langtools when building on MacOS Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Changeset: 65820d0d4a97 Author: jjg Date: 2010-12-09 19:53 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/65820d0d4a97 6986242: cut-n-paste error in javadoc for Trees.instance(ProcessingEnvironment) Reviewed-by: darcy ! src/share/classes/com/sun/source/util/Trees.java Changeset: 2ca5866a8dfb Author: mcimadamore Date: 2010-12-10 15:23 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/2ca5866a8dfb 7005671: Regression: compiler accepts invalid cast from X[] to primitive array Summary: regression in type conversion after 292 changes Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/cast/7005671/T7005671.java + test/tools/javac/cast/7005671/T7005671.out Changeset: b1c98bfd4709 Author: mcimadamore Date: 2010-12-10 15:24 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/b1c98bfd4709 6199075: Unambiguous varargs method calls flagged as ambiguous Summary: javac does not implement overload resolution w.r.t. varargs methods as described in the JLS Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java + test/tools/javac/varargs/6199075/T6199075.java Changeset: 8ec3a824f925 Author: jjg Date: 2010-12-10 07:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/8ec3a824f925 6504896: TreeMaker.Literal(Object) does not support Booleans Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java + test/tools/javac/tree/MakeLiteralTest.java Changeset: 878c8f760ded Author: jjg Date: 2010-12-12 10:05 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/878c8f760ded 6990134: minor (but red) findbugs warnings Reviewed-by: mcimadamore + src/share/classes/com/sun/tools/apt/main/AptJavaCompiler.java - src/share/classes/com/sun/tools/apt/main/JavaCompiler.java ! src/share/classes/com/sun/tools/apt/main/Main.java ! src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: fe43a7efd273 Author: lana Date: 2010-12-12 15:31 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/fe43a7efd273 Merge Changeset: dd9b5f767559 Author: lana Date: 2010-12-12 21:58 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/dd9b5f767559 Merge - src/share/classes/com/sun/tools/apt/main/JavaCompiler.java Changeset: 2199365892b1 Author: mcimadamore Date: 2010-12-13 14:56 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/2199365892b1 7006109: Add test library to simplify the task of writing automated type-system tests Summary: Types.java needs to be more stress-tested Reviewed-by: jjg + test/tools/javac/types/BoxingConversionTest.java + test/tools/javac/types/CastTest.java + test/tools/javac/types/PrimitiveConversionTest.java + test/tools/javac/types/TypeHarness.java Changeset: ffbf2b2a8611 Author: bpatel Date: 2010-12-13 13:44 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/ffbf2b2a8611 7006270: Several javadoc regression tests are failing on windows Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/Comment.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java ! test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java Changeset: 2f2ead61db06 Author: bpatel Date: 2010-12-13 14:08 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/2f2ead61db06 Merge - src/share/classes/com/sun/tools/apt/main/JavaCompiler.java Changeset: 7b99f98b3035 Author: mcimadamore Date: 2010-12-13 15:11 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/7b99f98b3035 6993978: Project Coin: Compiler support of annotation to reduce varargs warnings Reviewed-by: jjg, darcy ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/List.java ! src/share/classes/com/sun/tools/javac/util/Warner.java ! test/tools/javac/diags/CheckExamples.java ! test/tools/javac/diags/RunExamples.java + test/tools/javac/diags/examples/TrustMeOnNonVarargsMeth.java + test/tools/javac/diags/examples/TrustMeOnReifiableVarargsParam.java + test/tools/javac/diags/examples/TrustMeOnVirtualMethod.java ! test/tools/javac/diags/examples/UncheckedGenericArrayCreation.java + test/tools/javac/diags/examples/UnsafeUseOfVarargsParam.java - test/tools/javac/diags/examples/VarargsFilename.java - test/tools/javac/diags/examples/VarargsFilenameAdditional.java ! test/tools/javac/diags/examples/VarargsNonReifiableType.java - test/tools/javac/diags/examples/VarargsPlural/VarargsFilename.java - test/tools/javac/diags/examples/VarargsPlural/VarargsPlural.java - test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsFilename.java - test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPlural.java - test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPluralAdditional.java ! test/tools/javac/varargs/6730476/T6730476a.java ! test/tools/javac/varargs/6806876/T6806876.out + test/tools/javac/varargs/6993978/T6993978neg.java + test/tools/javac/varargs/6993978/T6993978neg.out ! test/tools/javac/varargs/warning/Warn4.java + test/tools/javac/varargs/warning/Warn5.java Changeset: a3b5b531542a Author: lana Date: 2010-12-20 21:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/a3b5b531542a Merge - src/share/classes/com/sun/tools/apt/main/JavaCompiler.java - src/share/classes/com/sun/tools/doclets/formats/html/StylesheetWriter.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java - test/tools/javac/diags/examples/VarargsFilename.java - test/tools/javac/diags/examples/VarargsFilenameAdditional.java - test/tools/javac/diags/examples/VarargsPlural/VarargsFilename.java - test/tools/javac/diags/examples/VarargsPlural/VarargsPlural.java - test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsFilename.java - test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPlural.java - test/tools/javac/diags/examples/VarargsPluralAdditional/VarargsPluralAdditional.java Changeset: 659417e931fe Author: cl Date: 2010-12-22 15:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/659417e931fe Added tag jdk7-b123 for changeset a3b5b531542a ! .hgtags Changeset: 4868a36f6fd8 Author: ohair Date: 2010-12-28 15:54 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/4868a36f6fd8 6962318: Update copyright year Reviewed-by: xdono ! make/Makefile ! make/build.properties ! make/tools/CompileProperties/CompileProperties.java ! make/tools/CompileProperties/CompilePropertiesTask.java ! src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java ! src/share/classes/com/sun/source/tree/MethodTree.java ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/tree/TryTree.java ! src/share/classes/com/sun/source/tree/TypeParameterTree.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/source/util/Trees.java ! src/share/classes/com/sun/tools/apt/comp/Apt.java ! src/share/classes/com/sun/tools/apt/main/CommandLine.java ! src/share/classes/com/sun/tools/apt/main/Main.java ! src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/TypeMirrorImpl.java ! src/share/classes/com/sun/tools/apt/resources/apt_ja.properties ! src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties ! src/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeOptionalMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstructorWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/EnumConstantWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/FieldWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/MethodWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/NestedClassWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DirectoryManager.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java ! src/share/classes/com/sun/tools/doclets/standard/Standard.java ! src/share/classes/com/sun/tools/javac/Launcher.java ! src/share/classes/com/sun/tools/javac/api/JavacTool.java ! src/share/classes/com/sun/tools/javac/code/Attribute.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Kinds.java ! src/share/classes/com/sun/tools/javac/code/Lint.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/jvm/CRTable.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Code.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/jvm/Items.java ! src/share/classes/com/sun/tools/javac/jvm/Target.java ! src/share/classes/com/sun/tools/javac/main/CommandLine.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/main/OptionName.java ! src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java ! src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java ! src/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/share/classes/com/sun/tools/javac/model/JavacTypes.java ! src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java ! src/share/classes/com/sun/tools/javac/nio/PathFileObject.java ! src/share/classes/com/sun/tools/javac/parser/Keywords.java ! src/share/classes/com/sun/tools/javac/processing/JavacFiler.java ! src/share/classes/com/sun/tools/javac/processing/JavacMessager.java ! src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java ! src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/javac.properties ! src/share/classes/com/sun/tools/javac/resources/javac_ja.properties ! src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/legacy.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java ! src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/AbstractLog.java ! src/share/classes/com/sun/tools/javac/util/BaseFileManager.java ! src/share/classes/com/sun/tools/javac/util/BasicDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/Bits.java ! src/share/classes/com/sun/tools/javac/util/FatalError.java ! src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java ! src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java ! src/share/classes/com/sun/tools/javac/util/List.java ! src/share/classes/com/sun/tools/javac/util/Log.java ! src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java ! src/share/classes/com/sun/tools/javac/util/Options.java ! src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/Warner.java ! src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java ! src/share/classes/com/sun/tools/javadoc/DocEnv.java ! src/share/classes/com/sun/tools/javadoc/DocletInvoker.java ! src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java ! src/share/classes/com/sun/tools/javadoc/Messager.java ! src/share/classes/com/sun/tools/javadoc/Start.java ! src/share/classes/com/sun/tools/javadoc/resources/javadoc.properties ! src/share/classes/com/sun/tools/javah/JNI.java ! src/share/classes/com/sun/tools/javah/LLNI.java ! src/share/classes/com/sun/tools/javah/Mangle.java ! src/share/classes/com/sun/tools/javah/TypeSignature.java ! src/share/classes/com/sun/tools/javah/resources/version.properties-template ! src/share/classes/com/sun/tools/javap/AnnotationWriter.java ! src/share/classes/com/sun/tools/javap/AttributeWriter.java ! src/share/classes/com/sun/tools/javap/ClassWriter.java ! src/share/classes/com/sun/tools/javap/CodeWriter.java ! src/share/classes/com/sun/tools/javap/SourceWriter.java ! src/share/classes/javax/lang/model/element/ElementKind.java ! src/share/classes/javax/lang/model/element/ElementVisitor.java ! src/share/classes/javax/lang/model/type/MirroredTypeException.java ! src/share/classes/javax/lang/model/type/MirroredTypesException.java ! src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java ! src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java ! src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java ! src/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/share/classes/javax/lang/model/util/ElementScanner6.java ! src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java ! src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java ! src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java ! src/share/classes/javax/lang/model/util/TypeKindVisitor6.java ! src/share/classes/javax/tools/ToolProvider.java ! src/share/sample/javac/processing/src/CheckNamesProcessor.java ! test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java ! test/com/sun/javadoc/AccessH1/AccessH1.java ! test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java ! test/com/sun/javadoc/AccessSummary/AccessSummary.java ! test/com/sun/javadoc/AuthorDD/AuthorDD.java ! test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java ! test/com/sun/javadoc/MetaTag/MetaTag.java ! test/com/sun/javadoc/ValidHtml/ValidHtml.java ! test/com/sun/javadoc/VersionNumber/VersionNumber.java ! test/com/sun/javadoc/WindowTitles/WindowTitles.java ! test/com/sun/javadoc/constantValues/TestConstantValuesDriver.java ! test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java ! test/com/sun/javadoc/testClassTree/TestClassTree.java ! test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java ! test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java ! test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java ! test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java ! test/com/sun/javadoc/testHeadings/TestHeadings.java ! test/com/sun/javadoc/testHelpOption/TestHelpOption.java ! test/com/sun/javadoc/testHref/TestHref.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java ! test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java ! test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java ! test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java ! test/com/sun/javadoc/testIndex/TestIndex.java ! test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java ! test/com/sun/javadoc/testInterface/TestInterface.java ! test/com/sun/javadoc/testJavascript/TestJavascript.java ! test/com/sun/javadoc/testLinkOption/TestLinkOption.java ! test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java ! test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java ! test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java ! test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java ! test/com/sun/javadoc/testNavagation/TestNavagation.java ! test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java ! test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java ! test/com/sun/javadoc/testPackagePage/TestPackagePage.java ! test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java ! test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ! test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java ! test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java ! test/com/sun/javadoc/testStylesheet/TestStylesheet.java ! test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java ! test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java ! test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java ! test/com/sun/javadoc/testTaglets/TestTaglets.java ! test/com/sun/javadoc/testTaglets/taglets/Foo.java ! test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java ! test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java ! test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java ! test/com/sun/javadoc/testTypeParams/TestTypeParameters.java ! test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java ! test/com/sun/javadoc/testValueTag/TestValueTag.java ! test/com/sun/javadoc/testWarnings/TestWarnings.java ! test/tools/javac/6341866/Anno.java ! test/tools/javac/6341866/T6341866.java ! test/tools/javac/6402516/CheckLocalElements.java ! test/tools/javac/ClassFileModifiers/ClassModifiers.java ! test/tools/javac/ClassFileModifiers/MemberModifiers.java ! test/tools/javac/EarlyAssert.java ! test/tools/javac/InterfaceAssert.java ! test/tools/javac/OverrideChecks/6738538/T6738538a.java ! test/tools/javac/OverrideChecks/6738538/T6738538b.java ! test/tools/javac/T6358024.java ! test/tools/javac/T6403466.java ! test/tools/javac/T6411379.java ! test/tools/javac/T6423583.java ! test/tools/javac/T6705935.java ! test/tools/javac/ThrowsIntersection_1.java ! test/tools/javac/ThrowsIntersection_2.java ! test/tools/javac/ThrowsIntersection_3.java ! test/tools/javac/ThrowsIntersection_4.java ! test/tools/javac/annotations/6214965/T6214965.java ! test/tools/javac/annotations/6365854/T6365854.java ! test/tools/javac/annotations/neg/Constant.java ! test/tools/javac/annotations/neg/Dep.java ! test/tools/javac/annotations/pos/TrailingComma.java ! test/tools/javac/api/6421111/T6421111.java ! test/tools/javac/api/6468404/T6468404.java ! test/tools/javac/api/6731573/T6731573.java ! test/tools/javac/api/T6392782.java ! test/tools/javac/api/T6412669.java ! test/tools/javac/api/TestOperators.java ! test/tools/javac/cast/6548436/T6548436d.java ! test/tools/javac/cast/6558559/T6558559a.java ! test/tools/javac/cast/6558559/T6558559b.java ! test/tools/javac/cast/6586091/T6586091.java ! test/tools/javac/danglingDep/DepX.java ! test/tools/javac/danglingDep/NoDepX.java ! test/tools/javac/danglingDep/Test1.java ! test/tools/javac/depOverrides/annotation/Test1.java ! test/tools/javac/depOverrides/annotation/Test2.java ! test/tools/javac/depOverrides/doccomment/Test1.java ! test/tools/javac/depOverrides/doccomment/Test2.java ! test/tools/javac/diags/examples/BadSourceFileHeader/sourcepath/p/A.java ! test/tools/javac/enum/6424358/T6424358.java ! test/tools/javac/enum/T6724345.java ! test/tools/javac/generics/Casting.java ! test/tools/javac/generics/Casting3.java ! test/tools/javac/generics/Casting4.java ! test/tools/javac/generics/InnerInterface1.java ! test/tools/javac/generics/InnerInterface2.java ! test/tools/javac/generics/Multibound1.java ! test/tools/javac/generics/MultipleInheritance.java ! test/tools/javac/generics/NameOrder.java ! test/tools/javac/generics/PermuteBound.java ! test/tools/javac/generics/PrimitiveVariant.java ! test/tools/javac/generics/T6557954.java ! test/tools/javac/generics/T6751514.java ! test/tools/javac/generics/T6869075.java ! test/tools/javac/generics/inference/6569789/T6569789.java ! test/tools/javac/generics/inference/6650759/T6650759a.java ! test/tools/javac/generics/typevars/5060485/Compatibility.java ! test/tools/javac/generics/typevars/5060485/Compatibility02.java ! test/tools/javac/generics/typevars/T6880344.java ! test/tools/javac/generics/wildcards/T6732484.java ! test/tools/javac/mandatoryWarnings/deprecated/Test.java ! test/tools/javac/mandatoryWarnings/unchecked/Test.java ! test/tools/javac/meth/InvokeMHTrans.java ! test/tools/javac/nio/compileTest/CompileTest.java ! test/tools/javac/policy/test1/Test1a.java ! test/tools/javac/policy/test2/Test.java ! test/tools/javac/processing/model/util/elements/Foo.java ! test/tools/javac/rawDiags/Note.java ! test/tools/javac/tree/TreeKindTest.java ! test/tools/javac/typeAnnotations/newlocations/BasicTest.java ! test/tools/javac/varargs/T6746184.java ! test/tools/javac/varargs/warning/Warn1.java ! test/tools/javadoc/T4994049/FileWithTabs.java ! test/tools/javadoc/T4994049/T4994049.java ! test/tools/javap/T6715251.java ! test/tools/javap/T6715753.java ! test/tools/javap/T6729471.java ! test/tools/javap/T6868539.java Changeset: 4b0560c72b52 Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/4b0560c72b52 Added tag jdk7-b124 for changeset 4868a36f6fd8 ! .hgtags From y.s.ramakrishna at oracle.com Fri Jan 7 09:55:25 2011 From: y.s.ramakrishna at oracle.com (y.s.ramakrishna at oracle.com) Date: Fri, 07 Jan 2011 09:55:25 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7008136: CMS: assert((HeapWord*)nextChunk <= _limit) failed: sweep invariant Message-ID: <20110107095532.12B4E47A53@hg.openjdk.java.net> Changeset: 4947ee68d19c Author: ysr Date: 2011-01-06 23:50 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4947ee68d19c 7008136: CMS: assert((HeapWord*)nextChunk <= _limit) failed: sweep invariant Summary: The recorded _sweep_limit may not necessarily remain a block boundary as the old generation expands during a concurrent cycle. Terminal actions inside the sweep closure need to be aware of this as they cross over the limit. Reviewed-by: johnc, minqi ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp From y.s.ramakrishna at oracle.com Fri Jan 7 20:12:39 2011 From: y.s.ramakrishna at oracle.com (Y. Srinivas Ramakrishna) Date: Fri, 07 Jan 2011 12:12:39 -0800 Subject: accessing memory management details In-Reply-To: References: Message-ID: <4D2773B7.7010501@oracle.com> These are most easily/conveniently done inside the JVM rather than via the use of Reference queues etc. But even then the overheads for tracking these things can add up, so you may be better off instrumenting them directly into the JVM (or perhaps having Dtrace hooks or like at strategic points which could then be leveraged suitably) and which would hopefully not impose too much additonal overhead when not enabled (and a facility to enable it on-the-fly/on-demand). Features like this have been discussed a number of times in the last few years, but have apparently not happened because of the non-trivial overheads that one does not want in production JVM's. -- ramki On 1/5/2011 8:47 AM, Brian Harris wrote: > Hi again, > > An idea has come to mind which may allow rough estimates for some of these > figures. Instrumentation could be used as a hook to register phantom > references of all newly allocated objects with a reference queue. Verbose GC > logs could also be captured and parsed, and the GC timestamps could be fuzzy > matched with the reference enqueue timestamps. Which GC run claimed which > object could(?) then be roughly inferred. > > Obviously this is far from ideal on many fronts and I'm not sure it would > produce good results. > > On Mon, Dec 20, 2010 at 12:02 PM, Brian Harris > wrote: > >> Hello, >> >> Is it possible for my app to learn where objects are allocated? Young or >> old generation, if young which survivor space? In a LAB? I'm interested in >> where an object was initially allocated, but also any movements (from >> where?, to where?, when?) that happen thereafter. >> >> These use cases illustrate what I had in mind: >> * JUnit test asserting>90% of allocations of type com.mycompany.Entity >> are done in TLAB >> * Benchmark tool showing the effect that various JVM tuning parameters >> have on memory management. Displayed as graphs, timelines, etc. >> >> I looked through the 1.6 JVMTI demos and didn't see these sort of details >> being exposed. Also nothing similar looking through BTrace examples. Where >> should I look next?. >> >> Happy holidays, >> Brian Harris >> > > > > _______________________________________________ > hotspot-gc-use mailing list > hotspot-gc-use at openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From y.s.ramakrishna at oracle.com Tue Jan 11 07:40:38 2011 From: y.s.ramakrishna at oracle.com (Y. Srinivas Ramakrishna) Date: Mon, 10 Jan 2011 23:40:38 -0800 Subject: Long ParNew Collection Time In-Reply-To: <04C34FE5DDAA457EADA57035C183E9B8@gmail.com> References: <04C34FE5DDAA457EADA57035C183E9B8@gmail.com> Message-ID: <4D2C0976.4030208@oracle.com> Is the system TOD being changed? May be an overzealous NTP daemon? Can you make sure NTP is disabled and see if the problem goes away? -- ramki On 1/10/2011 10:30 PM, Shay Banon wrote: > Hi, > > > Running a JVM (1.6u23) on ubuntu 10.0 (machine has 32gb) getting this GC log output: > > > 3856.471: [GC 3856.471: [ParNew: 118016K->13056K(118016K), 37.8958700 secs] 689035K->593566K(8375552K), 37.8959970 secs] [Times: user=0.00 sys=0.00, real=37.90 secs] > > > As you can see, the it seems like time wise, its all real. > > > Flags used are: > > > -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Xms8g -Xmx8g > > > Tried also with: > > > * -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 > * -XX:-CMSConcurrentMTEnabled > > > Checked vmstat during the run, and don't see any swapping going on (si/so are 0, no swap). > > > Any idea on how to try and solve this? > > > cheers, > -shay.banon > > > > > > > _______________________________________________ > hotspot-gc-use mailing list > hotspot-gc-use at openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From y.s.ramakrishna at oracle.com Tue Jan 11 16:48:59 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Tue, 11 Jan 2011 08:48:59 -0800 Subject: Long ParNew Collection Time In-Reply-To: References: <04C34FE5DDAA457EADA57035C183E9B8@gmail.com> <4D2C0976.4030208@oracle.com> Message-ID: <4D2C89FB.1050902@oracle.com> Hi Shay -- On 01/11/11 05:05, Shay Banon wrote: > > I will give it a go. Are you suggesting that its just a time reporting > problem, and there is no actual long GC? It does correlate with the > system hanging and not doing anything during that time (not responding > to any requests from clients). Yes, that was what I was suggesting, but from your description it sounds like it's a "real" problem (pun intended). So we'll need to see what's happening. Disabling NTP would be good anyway in order to investigate further. If you already have the data, you might want to lay the GC pause data, the client response time data and the vmstat data in an (aligned) time series plot (or other) to see if there's any correlation (rather than focusing on single events). -- ramki > > -shay.banon > > On Tuesday, January 11, 2011 at 9:40 AM, Y. Srinivas Ramakrishna wrote: > >> Is the system TOD being changed? May be an overzealous NTP daemon? >> Can you make sure NTP is disabled and see if the problem goes away? >> >> -- ramki >> >> >> On 1/10/2011 10:30 PM, Shay Banon wrote: >>> Hi, >>> >>> >>> Running a JVM (1.6u23) on ubuntu 10.0 (machine has 32gb) getting this >>> GC log output: >>> >>> >>> 3856.471: [GC 3856.471: [ParNew: 118016K->13056K(118016K), 37.8958700 >>> secs] 689035K->593566K(8375552K), 37.8959970 secs] [Times: user=0.00 >>> sys=0.00, real=37.90 secs] >>> >>> >>> As you can see, the it seems like time wise, its all real. >>> >>> >>> Flags used are: >>> >>> >>> -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Xms8g -Xmx8g >>> >>> >>> Tried also with: >>> >>> >>> * -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 >>> -XX:CMSInitiatingOccupancyFraction=75 >>> * -XX:-CMSConcurrentMTEnabled >>> >>> >>> Checked vmstat during the run, and don't see any swapping going on >>> (si/so are 0, no swap). >>> >>> >>> Any idea on how to try and solve this? >>> >>> >>> cheers, >>> -shay.banon >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> hotspot-gc-use mailing list >>> hotspot-gc-use at openjdk.java.net >>> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use > _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From y.s.ramakrishna at oracle.com Tue Jan 11 17:22:22 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Tue, 11 Jan 2011 09:22:22 -0800 Subject: Long ParNew Collection Time In-Reply-To: <4D2C89FB.1050902@oracle.com> References: <04C34FE5DDAA457EADA57035C183E9B8@gmail.com> <4D2C0976.4030208@oracle.com> <4D2C89FB.1050902@oracle.com> Message-ID: <4D2C91CE.3060809@oracle.com> I'd do all of this after following Chi-Ho's suggestions on swappiness settings, of course. Also, -XX:+AlwaysPreTouch to touch all of the heap pages up front, just in case this is an artifact of touching the occasional new page(s) for the first time in the life of the process and hitting a Linux virtual memory pothole. But this is all conjecture of course... -- ramki On 01/11/11 08:48, Y. S. Ramakrishna wrote: > > Hi Shay -- > > On 01/11/11 05:05, Shay Banon wrote: >> >> I will give it a go. Are you suggesting that its just a time reporting >> problem, and there is no actual long GC? It does correlate with the >> system hanging and not doing anything during that time (not responding >> to any requests from clients). > > Yes, that was what I was suggesting, but from your description > it sounds like it's a "real" problem (pun intended). So we'll need to > see what's happening. Disabling NTP would be good anyway in order > to investigate further. If you already have the data, you might want > to lay the GC pause data, the client response time data and > the vmstat data in an (aligned) time series plot (or other) to see > if there's any correlation (rather than focusing on single events). > > -- ramki > >> >> -shay.banon >> >> On Tuesday, January 11, 2011 at 9:40 AM, Y. Srinivas Ramakrishna wrote: >> >>> Is the system TOD being changed? May be an overzealous NTP daemon? >>> Can you make sure NTP is disabled and see if the problem goes away? >>> >>> -- ramki >>> >>> >>> On 1/10/2011 10:30 PM, Shay Banon wrote: >>>> Hi, >>>> >>>> >>>> Running a JVM (1.6u23) on ubuntu 10.0 (machine has 32gb) getting >>>> this GC log output: >>>> >>>> >>>> 3856.471: [GC 3856.471: [ParNew: 118016K->13056K(118016K), >>>> 37.8958700 secs] 689035K->593566K(8375552K), 37.8959970 secs] >>>> [Times: user=0.00 sys=0.00, real=37.90 secs] >>>> >>>> >>>> As you can see, the it seems like time wise, its all real. >>>> >>>> >>>> Flags used are: >>>> >>>> >>>> -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Xms8g -Xmx8g >>>> >>>> >>>> Tried also with: >>>> >>>> >>>> * -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 >>>> -XX:CMSInitiatingOccupancyFraction=75 >>>> * -XX:-CMSConcurrentMTEnabled >>>> >>>> >>>> Checked vmstat during the run, and don't see any swapping going on >>>> (si/so are 0, no swap). >>>> >>>> >>>> Any idea on how to try and solve this? >>>> >>>> >>>> cheers, >>>> -shay.banon >>>> >>>> >>>> >>>> >>>> >>>> >>>> _______________________________________________ >>>> hotspot-gc-use mailing list >>>> hotspot-gc-use at openjdk.java.net >>>> >>>> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use >> > _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From y.s.ramakrishna at oracle.com Tue Jan 11 17:40:48 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Tue, 11 Jan 2011 09:40:48 -0800 Subject: Long ParNew Collection Time In-Reply-To: <4D2C91CE.3060809@oracle.com> References: <04C34FE5DDAA457EADA57035C183E9B8@gmail.com> <4D2C0976.4030208@oracle.com> <4D2C89FB.1050902@oracle.com> <4D2C91CE.3060809@oracle.com> Message-ID: <4D2C9620.4070300@oracle.com> On 01/11/11 09:22, Y. S. Ramakrishna wrote: > I'd do all of this after following Chi-Ho's suggestions > on swappiness settings, of course. Also, -XX:+AlwaysPreTouch > to touch all of the heap pages up front, just in case this is an artifact > of touching the occasional new page(s) for the first time in the > life of the process and hitting a Linux virtual memory pothole. Hmm, in that case, i'd normally expect the time to be attributed to system time (as i'd expect any swapping to as well), so i'm not sure if this will help... I'll shut up now :-) -- ramki > But this is all conjecture of course... _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From tony.printezis at oracle.com Wed Jan 12 20:53:06 2011 From: tony.printezis at oracle.com (tony.printezis at oracle.com) Date: Wed, 12 Jan 2011 20:53:06 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7007068: G1: refine the BOT during evac failure handling Message-ID: <20110112205313.15EFA47BC2@hg.openjdk.java.net> Changeset: 2250ee17e258 Author: tonyp Date: 2011-01-12 13:06 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/2250ee17e258 7007068: G1: refine the BOT during evac failure handling Summary: During evacuation failure handling we refine the BOT to reflect the location of all the objects in the regions we scan. The changeset includes some minor cleanup: a) non-product print_on() method on the G1 BOT class, b) added more complete BOT verification during heap / region verification, c) slight modification to the BOT set up for humongous regions to be more consistent with the BOT set up during evac failure handling, and d) removed a couple of unused methods. Reviewed-by: johnc, ysr ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp ! src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.cpp From tony.printezis at oracle.com Thu Jan 13 00:45:31 2011 From: tony.printezis at oracle.com (tony.printezis at oracle.com) Date: Thu, 13 Jan 2011 00:45:31 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 6994297: G1: do first-level slow-path allocations with a CAS Message-ID: <20110113004536.6892047BD0@hg.openjdk.java.net> Changeset: b158bed62ef5 Author: tonyp Date: 2011-01-12 16:34 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/b158bed62ef5 6994297: G1: do first-level slow-path allocations with a CAS Summary: First attempt to allocate out the current alloc region using a CAS instead of taking the Heap_lock (first level of G1's slow allocation path). Only if that fails and it's necessary to replace the current alloc region take the Heap_lock (that's the second level of G1's slow allocation path). Reviewed-by: johnc, brutisso, ysr ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp From bluedavy at gmail.com Thu Jan 13 06:33:15 2011 From: bluedavy at gmail.com (BlueDavy Lin) Date: Thu, 13 Jan 2011 14:33:15 +0800 Subject: A crash log,can someone give some advices? Message-ID: hi! Crash log attached, can someone look it to give me some advices? It seems crash in below codes: void instanceKlass::remove_osr_nmethod(nmethod* n) -- ============================= |? ?? BlueDavy? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | |? ?? OSGi China User Group Director? ? | |? ?? http://china.osgiusers.org? ? ? ? ? ? ?? | |? ?? http://www.bluedavy.com? ?? | ============================= -------------- next part -------------- A non-text attachment was scrubbed... Name: hs_err_pid.log Type: application/octet-stream Size: 24690 bytes Desc: not available URL: From y.s.ramakrishna at oracle.com Thu Jan 13 07:54:00 2011 From: y.s.ramakrishna at oracle.com (Y.S Ramakrishna) Date: Wed, 12 Jan 2011 23:54:00 -0800 (PST) Subject: A crash log,can someone give some advices? Message-ID: <5024ac02-b4e9-4bc8-a7cf-e1e8c24eb5c5@default> I believe this was fixed this a while ago; i'll dig up the CR. Can you try the latest JDK 6uXX (6u23?). -- ramki ----- Original Message ----- From: bluedavy at gmail.com To: hotspot-gc-dev at openjdk.java.net Sent: Wednesday, January 12, 2011 10:45:49 PM GMT -08:00 US/Canada Pacific Subject: A crash log,can someone give some advices? hi! Crash log attached, can someone look it to give me some advices? It seems crash in below codes: void instanceKlass::remove_osr_nmethod(nmethod* n) -- ============================= |? ?? BlueDavy? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | |? ?? OSGi China User Group Director? ? | |? ?? http://china.osgiusers.org? ? ? ? ? ? ?? | |? ?? http://www.bluedavy.com? ?? | ============================= From bluedavy at gmail.com Thu Jan 13 08:20:26 2011 From: bluedavy at gmail.com (BlueDavy Lin) Date: Thu, 13 Jan 2011 16:20:26 +0800 Subject: A crash log,can someone give some advices? In-Reply-To: <5024ac02-b4e9-4bc8-a7cf-e1e8c24eb5c5@default> References: <5024ac02-b4e9-4bc8-a7cf-e1e8c24eb5c5@default> Message-ID: Thank u very much,wait for the CR,:) 2011/1/13 Y.S Ramakrishna : > > I believe this was fixed this a while ago; i'll dig up the CR. > Can you try the latest JDK 6uXX (6u23?). > > -- ramki > > ----- Original Message ----- > From: bluedavy at gmail.com > To: hotspot-gc-dev at openjdk.java.net > Sent: Wednesday, January 12, 2011 10:45:49 PM GMT -08:00 US/Canada Pacific > Subject: A crash log,can someone give some advices? > > hi! > > ? ? Crash log attached, can someone look it to give me some advices? > > ? ? It seems crash in below codes: > > ? ? void instanceKlass::remove_osr_nmethod(nmethod* n) > > -- > ============================= > |? ?? BlueDavy? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | > |? ?? OSGi China User Group Director? ? | > |? ?? http://china.osgiusers.org? ? ? ? ? ? ?? | > |? ?? http://www.bluedavy.com? ?? | > ============================= > -- ============================= |? ?? BlueDavy? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | |? ?? OSGi China User Group Director? ? | |? ?? http://china.osgiusers.org? ? ? ? ? ? ?? | |? ?? http://www.bluedavy.com? ?? | ============================= From y.s.ramakrishna at oracle.com Thu Jan 13 18:52:03 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Thu, 13 Jan 2011 10:52:03 -0800 Subject: A crash log,can someone give some advices? In-Reply-To: References: <5024ac02-b4e9-4bc8-a7cf-e1e8c24eb5c5@default> Message-ID: <4D2F49D3.5000008@oracle.com> The CR i had in mind is: 6351173 Crash in OSR / GC test which was closed/fixed as a consequence of (the changes in) 4957990 PermHeap bloat in server VM which was fixed in JDK 6u21 and in JDK 7b72, and in earlier J4B releases. -- ramki On 01/13/11 00:20, BlueDavy Lin wrote: > Thank u very much,wait for the CR,:) > > 2011/1/13 Y.S Ramakrishna : >> I believe this was fixed this a while ago; i'll dig up the CR. >> Can you try the latest JDK 6uXX (6u23?). >> >> -- ramki >> >> ----- Original Message ----- >> From: bluedavy at gmail.com >> To: hotspot-gc-dev at openjdk.java.net >> Sent: Wednesday, January 12, 2011 10:45:49 PM GMT -08:00 US/Canada Pacific >> Subject: A crash log,can someone give some advices? >> >> hi! >> >> Crash log attached, can someone look it to give me some advices? >> >> It seems crash in below codes: >> >> void instanceKlass::remove_osr_nmethod(nmethod* n) >> >> -- >> ============================= >> | BlueDavy | >> | OSGi China User Group Director | >> | http://china.osgiusers.org | >> | http://www.bluedavy.com | >> ============================= >> > > > From bengt.rutisson at oracle.com Thu Jan 13 18:58:18 2011 From: bengt.rutisson at oracle.com (bengt.rutisson at oracle.com) Date: Thu, 13 Jan 2011 18:58:18 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 6941122: G1: UseLargePages does not work with G1 garbage collector Message-ID: <20110113185822.3796547C03@hg.openjdk.java.net> Changeset: 2e0b0c4671e4 Author: brutisso Date: 2011-01-13 04:43 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/2e0b0c4671e4 6941122: G1: UseLargePages does not work with G1 garbage collector Summary: Pass the value of UseLargePages instead of false as the "large" parameter when reserving the G1 heap. Reviewed-by: tonyp, johnc, phh ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp From y.s.ramakrishna at oracle.com Fri Jan 14 00:02:08 2011 From: y.s.ramakrishna at oracle.com (y.s.ramakrishna at oracle.com) Date: Fri, 14 Jan 2011 00:02:08 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7011940: iCMS: SIGSEGV in SweepClosure::do_already_free_chunk(FreeChunk*)+0x360 Message-ID: <20110114000213.32C8B47C12@hg.openjdk.java.net> Changeset: c91cc404ca46 Author: ysr Date: 2011-01-13 11:33 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/c91cc404ca46 7011940: iCMS: SIGSEGV in SweepClosure::do_already_free_chunk(FreeChunk*)+0x360 Summary: Revert a (relaxed version of the) bounds-check that was incorrectly removed in the fix for 7008136. Reviewed-by: jmasa, johnc ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp From john.cuthbertson at oracle.com Fri Jan 14 05:32:34 2011 From: john.cuthbertson at oracle.com (john.cuthbertson at oracle.com) Date: Fri, 14 Jan 2011 05:32:34 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 53 new changesets Message-ID: <20110114053407.9BD8C47C38@hg.openjdk.java.net> Changeset: 7737fa7ec2b5 Author: twisti Date: 2010-12-14 12:44 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7737fa7ec2b5 7006044: materialize cheap non-oop pointers on 64-bit SPARC Summary: After 6961690 we load non-oop pointers for the constant table which could easily be materialized in a few instructions. Reviewed-by: never, kvn ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/sparc.ad Changeset: 781072b12368 Author: never Date: 2010-12-14 23:17 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/781072b12368 6765546: Wrong sscanf used to parse CompilerOracle command >= 32 characters could lead to crash Reviewed-by: kvn, iveresov ! src/share/vm/compiler/compilerOracle.cpp Changeset: 4042471b7419 Author: iveresov Date: 2010-12-16 01:46 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4042471b7419 Merge Changeset: cccd1b172b85 Author: never Date: 2010-12-16 12:47 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/cccd1b172b85 6839888: Array overrun in vm adlc Reviewed-by: kvn, iveresov ! src/share/vm/adlc/dict2.cpp Changeset: c04052fd6ae1 Author: kvn Date: 2010-12-16 14:15 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/c04052fd6ae1 7006505: Use kstat info to identify SPARC processor Summary: read Solaris kstat data to get more precise CPU information Reviewed-by: iveresov, never, twisti, dholmes ! make/solaris/makefiles/buildtree.make ! make/solaris/makefiles/vm.make ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.hpp ! src/os/solaris/vm/os_solaris.cpp ! src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp ! src/share/vm/memory/universe.cpp Changeset: 7223744c2784 Author: never Date: 2010-12-17 15:55 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7223744c2784 6579789: Internal error "c1_LinearScan.cpp:1429 Error: assert(false,"")" in debuggee with fastdebug VM Reviewed-by: kvn, iveresov ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/c1/c1_LinearScan.hpp + test/compiler/6579789/Test6579789.java Changeset: 52d615436cef Author: never Date: 2010-12-18 06:40 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/52d615436cef Merge Changeset: 7d9caaedafce Author: twisti Date: 2010-12-18 01:15 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7d9caaedafce 6990933: assert(sender_cb) failed: sanity in frame::sender_for_interpreter_frame Reviewed-by: never ! src/share/vm/code/nmethod.cpp Changeset: 1fb0500f550e Author: twisti Date: 2010-12-18 08:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/1fb0500f550e Merge Changeset: ef3c5db0b3ae Author: twisti Date: 2010-12-21 04:37 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/ef3c5db0b3ae 7008165: Garbage in ClassFormatError message Summary: When bootstrap_method_ref in BootstrapMethods attribute points to a wrong CP entry (non-MethodHandle), JVM throws ClassFormatError with a message, where method index and class file name is garbage. Reviewed-by: iveresov ! src/share/vm/classfile/classFileParser.cpp Changeset: a21ff35351ec Author: kvn Date: 2010-12-21 13:56 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/a21ff35351ec 7003130: assert(iterations start) failed: need enough space to divide up Summary: Codebuffer can overflow on test with large number of calls Reviewed-by: dholmes, collins ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_Compilation.hpp Changeset: 4537d449ba57 Author: bobv Date: 2011-01-07 15:57 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4537d449ba57 Merge Changeset: b1a2afa37ec4 Author: phh Date: 2011-01-07 10:42 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/b1a2afa37ec4 7003271: Hotspot should track cumulative Java heap bytes allocated on a per-thread basis Summary: Track allocated bytes in Thread's, update on TLAB retirement and direct allocation in Eden and tenured, add JNI methods for ThreadMXBean. Reviewed-by: coleenp, kvn, dholmes, ysr ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/c1_MacroAssembler_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/solaris/vm/thread_solaris.inline.hpp ! src/share/vm/gc_interface/collectedHeap.inline.hpp ! src/share/vm/memory/threadLocalAllocBuffer.cpp ! src/share/vm/memory/threadLocalAllocBuffer.hpp ! src/share/vm/opto/macro.cpp ! src/share/vm/prims/jvmti.xml ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/services/jmm.h ! src/share/vm/services/management.cpp ! src/share/vm/services/threadService.cpp ! src/share/vm/services/threadService.hpp Changeset: 55d7d18ccff9 Author: dcubed Date: 2011-01-07 13:59 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/55d7d18ccff9 Merge Changeset: 84f36150fcc3 Author: dcubed Date: 2011-01-07 15:54 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/84f36150fcc3 Merge ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/os/solaris/vm/os_solaris.cpp Changeset: 0a8e0d4345b3 Author: trims Date: 2011-01-03 15:30 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/0a8e0d4345b3 7010068: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - first pass Summary: Update the copyright to be 2010 on all changed files in OpenJDK Reviewed-by: jcoomes ! agent/src/os/linux/libproc_impl.c ! agent/src/os/linux/ps_core.c ! agent/src/os/linux/ps_proc.c ! agent/src/os/linux/symtab.c ! agent/src/os/linux/symtab.h ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeInvoke.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithCPIndex.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java ! agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java ! agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheEntry.java ! agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/soql/sa.js ! make/hotspot_distro ! make/hotspot_version ! make/jprt.gmk ! make/jprt.properties ! make/linux/makefiles/defs.make ! make/linux/makefiles/jvmti.make ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! make/linux/makefiles/product.make ! make/linux/makefiles/saproc.make ! make/linux/makefiles/shark.make ! make/linux/makefiles/sparcWorks.make ! make/solaris/makefiles/defs.make ! make/solaris/makefiles/fastdebug.make ! make/solaris/makefiles/jvmti.make ! make/solaris/makefiles/optimized.make ! make/solaris/makefiles/product.make ! make/solaris/makefiles/saproc.make ! make/windows/build.bat ! make/windows/get_msc_ver.sh ! make/windows/makefiles/defs.make ! make/windows/makefiles/sanity.make ! src/os/solaris/dtrace/hotspot.d ! src/os_cpu/linux_x86/vm/linux_x86_32.s ! src/os_cpu/solaris_x86/vm/solaris_x86_32.il ! src/os_cpu/solaris_x86/vm/solaris_x86_32.s ! src/os_cpu/solaris_x86/vm/solaris_x86_64.il ! test/Makefile ! test/compiler/6431242/Test.java ! test/compiler/6857159/Test6857159.java ! test/compiler/6877254/Test.java ! test/compiler/6895383/Test.java ! test/compiler/6896727/Test.java Changeset: 09d92cbb793b Author: cl Date: 2011-01-06 20:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/09d92cbb793b Added tag jdk7-b124 for changeset 0a8e0d4345b3 ! .hgtags Changeset: f6a707dbaddb Author: trims Date: 2011-01-07 19:09 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/f6a707dbaddb Added tag hs20-b05 for changeset 0a8e0d4345b3 ! .hgtags Changeset: 9fc3ffb1e0b1 Author: trims Date: 2011-01-07 22:42 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/9fc3ffb1e0b1 7011125: Bump the HS20 build number to 06 Summary: Update the HS20 build number to 06 Reviewed-by: jcoomes ! make/hotspot_version Changeset: e24ab3fa6aaf Author: trims Date: 2011-01-07 22:56 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e24ab3fa6aaf Merge ! make/jprt.properties Changeset: 55f868e91c3b Author: iveresov Date: 2011-01-06 16:03 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/55f868e91c3b 7010618: C1: array length should be treated at int on 64bit during array allocation Summary: Sign-extend the length argument during array allocation Reviewed-by: never, kvn ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Changeset: 0e52ef6e94d3 Author: twisti Date: 2011-01-07 03:58 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/0e52ef6e94d3 Merge Changeset: 4fc084dac61e Author: kvn Date: 2011-01-07 10:16 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4fc084dac61e 7009756: volatile variables could be broken throw reflection API Summary: Use Atomic::load() and Atomic::store() to access a volatile long. Reviewed-by: iveresov, jrose, dholmes, never ! src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp ! src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp ! src/os_cpu/linux_x86/vm/linux_x86_32.s ! src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp ! src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp ! src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp ! src/os_cpu/solaris_x86/vm/solaris_x86_32.il ! src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp ! src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp ! src/share/vm/prims/unsafe.cpp Changeset: 78e248949382 Author: kvn Date: 2011-01-07 11:53 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/78e248949382 6876037: CTW fails jdk7/hotspot/src/share/vm/opto/type.cpp:2055. assert(bits,"Use TypePtr for NULL") Summary: Add missing 0 value check in TypeRawPtr::add_offset(). Reviewed-by: never ! src/share/vm/opto/type.cpp Changeset: d810e9a3fc33 Author: twisti Date: 2011-01-10 00:56 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d810e9a3fc33 7010180: JSR 292 InvokeDynamicPrintArgs fails with: assert(_adapter == NULL) failed: init'd to NULL Reviewed-by: never ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/methodHandles.hpp Changeset: 70427f06ea47 Author: twisti Date: 2011-01-10 03:58 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/70427f06ea47 7010913: JSR 292 ciMethodHandle does not handle MethodHandleCompiler exceptions properly Reviewed-by: kvn, never ! src/share/vm/ci/ciMethodHandle.cpp ! src/share/vm/prims/methodHandleWalk.cpp Changeset: dd031b2226de Author: iveresov Date: 2011-01-10 18:46 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/dd031b2226de 4930919: race condition in MDO creation at back branch locations Summary: Reuse set_method_data_for_bcp() to setup mdp after MDO creation. Reviewed-by: kvn, never ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.hpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp Changeset: d4fca0a6abde Author: kvn Date: 2011-01-11 20:26 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d4fca0a6abde 7011386: race in objArrayKlass::array_klass_impl Summary: Move _lower_dimension field initialization before _higher_dimension and add storestore barrier. Reviewed-by: dholmes, iveresov, never ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/typeArrayKlass.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: bb8e3b66bde6 Author: twisti Date: 2011-01-13 07:20 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/bb8e3b66bde6 Merge ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/os_cpu/linux_x86/vm/linux_x86_32.s ! src/os_cpu/solaris_x86/vm/solaris_x86_32.il Changeset: c17b998c5926 Author: iveresov Date: 2011-01-12 18:33 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/c17b998c5926 7011627: C1: call_RT must support targets that don't fit in wdisp30 Summary: Make both compilers emit near and far calls when necessary. Reviewed-by: never, kvn, phh ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/assembler_sparc.inline.hpp ! src/cpu/sparc/vm/sparc.ad Changeset: 5ae3e3b03224 Author: twisti Date: 2011-01-13 07:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/5ae3e3b03224 Merge ! src/cpu/sparc/vm/assembler_sparc.hpp Changeset: df307487d610 Author: dholmes Date: 2011-01-09 17:16 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/df307487d610 7010665: Misplaced membar in C1 implementation of Unsafe.get/putXXX Summary: Modify membars to match regular volatile variable handling Reviewed-by: iveresov, kvn, never ! src/share/vm/c1/c1_LIRGenerator.cpp Changeset: e31d8c656c5b Author: dcubed Date: 2011-01-10 09:23 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e31d8c656c5b Merge ! src/share/vm/c1/c1_LIRGenerator.cpp Changeset: 7246a374a9f2 Author: kamg Date: 2011-01-10 17:14 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7246a374a9f2 6458402: 3 jvmti tests fail with CMS and +ExplicitGCInvokesConcurrent Summary: Make JvmtiGCMark safe to run non-safepoint and instrument CMS Reviewed-by: ysr, dcubed ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.cpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/prims/jvmti.xml ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiImpl.hpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/jvmtiTagMap.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/jniHandles.cpp Changeset: db2b0f8c1cef Author: kamg Date: 2011-01-11 10:06 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/db2b0f8c1cef 6814943: getcpool001 catches more than one JvmtiThreadState problem Summary: Mark field volatile, use membars, and change access order to close race Reviewed-by: dcubed, dholmes ! src/share/vm/prims/jvmtiEventController.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: 5577848f5923 Author: phh Date: 2011-01-11 17:33 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/5577848f5923 7011463: Sparc MacroAssembler::incr_allocated_bytes() needs a RegisterOrConstant argument Summary: Replaced incr_allocated_bytes() formals var_size_in_bytes and con_size_in_bytes with a single RegisterOrConstant formal. Reviewed-by: twisti, jcoomes ! src/cpu/sparc/vm/assembler_sparc.cpp ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp Changeset: 0ca32cc95d7b Author: phh Date: 2011-01-11 17:50 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/0ca32cc95d7b Merge Changeset: 8f8dfba37802 Author: kevinw Date: 2011-01-12 15:44 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/8f8dfba37802 6994753: Implement optional hook to a Java method at VM startup. Reviewed-by: mchung, acorn ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/prims/jvm.h ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/java.hpp ! src/share/vm/runtime/thread.cpp Changeset: 34d64ad817f4 Author: coleenp Date: 2011-01-12 13:59 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/34d64ad817f4 7009828: Fix for 6938627 breaks visualvm monitoring when -Djava.io.tmpdir is defined Summary: Change get_temp_directory() back to /tmp and %TEMP% like it always was and where the tools expect it to be. Reviewed-by: phh, dcubed, kamg, alanb ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/share/vm/utilities/vmError.cpp Changeset: 856ecff79cf7 Author: dcubed Date: 2011-01-13 08:32 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/856ecff79cf7 Merge ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/templateTable_sparc.cpp Changeset: ffd725ff6943 Author: johnc Date: 2011-01-13 17:19 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/ffd725ff6943 Merge ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp From keith.mcguigan at oracle.com Wed Jan 19 15:14:56 2011 From: keith.mcguigan at oracle.com (Keith McGuigan) Date: Wed, 19 Jan 2011 10:14:56 -0500 Subject: invalid oops during oop_do() iteration? Message-ID: Hello, In some recent changes to JVMTI breakpoint code, I added some code to update a cache during an oop_do() iteration over of methodOop. The cache update involves dereferencing the methodOop's constMethodOop and getting the address to the code in it. Essentially, I'm doing something like this: JvmtiBreakpoint::oops_do(OopClosure* f) { for (int i = 0; i < _num_methods; ++i) { methodOop* m = method_at(i); f->do_oop(m); // update the cache in case the methodOop moved _cache[i] = (*m)->code_base() + _bci; } } (The actual code is in GrowableCache::oops_do() in jvmtiImpl.cpp, but this is the general idea) Doing this assumes that the methodOops will always be valid and refer to the same method. Considering what I'm seeing, I think this might be an invalid assumption. When oops_do() is called from PSMarkSweep::mark_sweep_phase3(), I occasionally see that the resulting methodOop* refers to something else when I'm updating the cache (not sure what, but it doesn't appear to be the same methodOop). It appears to be reset correctly in a later oops_do() iteration. Is this expected? And if so, is there any way for me to tell when doing the oops_do() whether or not the resulting oops are valid? We're seeing assertion failures and crashes in nightly testing when the oop is not the methodOop that we expected. I'll take a quick hack to make it work for now if we can fix it better later. If you've got anything for me to try, IM me (or email, but IM might be faster) and I'll give it a shot. -- - Keith From tony.printezis at oracle.com Wed Jan 19 17:06:02 2011 From: tony.printezis at oracle.com (tony.printezis at oracle.com) Date: Wed, 19 Jan 2011 17:06:02 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7011379: G1: overly long concurrent marking cycles Message-ID: <20110119170607.7E89447F4E@hg.openjdk.java.net> Changeset: 7e37af9d69ef Author: tonyp Date: 2011-01-19 09:35 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7e37af9d69ef 7011379: G1: overly long concurrent marking cycles Summary: This changeset introduces filtering of SATB buffers at the point when they are about to be enqueued. If this filtering clears enough entries on each buffer, the buffer can then be re-used and not enqueued. This cuts down the number of SATB buffers that need to be processed by the concurrent marking threads. Reviewed-by: johnc, ysr ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.hpp ! src/share/vm/gc_implementation/g1/ptrQueue.cpp ! src/share/vm/gc_implementation/g1/ptrQueue.hpp ! src/share/vm/gc_implementation/g1/satbQueue.cpp ! src/share/vm/gc_implementation/g1/satbQueue.hpp From y.s.ramakrishna at oracle.com Wed Jan 19 17:25:39 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Wed, 19 Jan 2011 09:25:39 -0800 Subject: invalid oops during oop_do() iteration? In-Reply-To: References: Message-ID: <4D371E93.1060506@oracle.com> Can you send a pointer to the changes that you made that led to this issue? In my repo, I do not see a method_at() method of JvmtiBreakpoint to try to understand what the problem is. I didn't understand your statement "methopdOops will always be valid and refer to the same method". (methodOops that are marked by GC as reachable will be kept, but if you stash methodOops in yr breakpoint structure, and these are weak pointers, as i assume they want to be, these would be cleared (nulled) during a post-mark weak references iteration, after which class unloading is also done.) Not sure I understood yr problem though, so more details will help. -- ramki On 01/19/11 07:14, Keith McGuigan wrote: > Hello, > > In some recent changes to JVMTI breakpoint code, I added some code to > update a cache during an oop_do() iteration over of methodOop. The > cache update involves dereferencing the methodOop's constMethodOop and > getting the address to the code in it. > > Essentially, I'm doing something like this: > > JvmtiBreakpoint::oops_do(OopClosure* f) { > for (int i = 0; i < _num_methods; ++i) { > methodOop* m = method_at(i); > f->do_oop(m); > > // update the cache in case the methodOop moved > _cache[i] = (*m)->code_base() + _bci; > } > } > > (The actual code is in GrowableCache::oops_do() in jvmtiImpl.cpp, but > this is the general idea) > > Doing this assumes that the methodOops will always be valid and refer to > the same method. Considering what I'm seeing, I think this might be an > invalid assumption. When oops_do() is called from > PSMarkSweep::mark_sweep_phase3(), I occasionally see that the resulting > methodOop* refers to something else when I'm updating the cache (not > sure what, but it doesn't appear to be the same methodOop). It appears > to be reset correctly in a later oops_do() iteration. > > Is this expected? And if so, is there any way for me to tell when doing > the oops_do() whether or not the resulting oops are valid? We're seeing > assertion failures and crashes in nightly testing when the oop is not > the methodOop that we expected. I'll take a quick hack to make it work > for now if we can fix it better later. > > If you've got anything for me to try, IM me (or email, but IM might be > faster) and I'll give it a shot. > > -- > - Keith From tony.printezis at oracle.com Wed Jan 19 17:30:10 2011 From: tony.printezis at oracle.com (Tony Printezis) Date: Wed, 19 Jan 2011 12:30:10 -0500 Subject: invalid oops during oop_do() iteration? In-Reply-To: <4D371E93.1060506@oracle.com> References: <4D371E93.1060506@oracle.com> Message-ID: <4D371FA2.9030803@oracle.com> Not very familiar with this code, but isn't mark_sweep_phase3 the phase that adjusts the reference fields in the live objects to reflect the new location of the referent *before* the objects are moved? Does this explain Keith's observation? Y. S. Ramakrishna wrote: > Can you send a pointer to the changes that you made that led > to this issue? In my repo, I do not see a method_at() method > of JvmtiBreakpoint to try to understand what the problem is. > > I didn't understand your statement "methopdOops will always be valid and > refer to the same method". (methodOops that are marked by GC as reachable > will be kept, but if you stash methodOops in yr breakpoint structure, > and these are weak pointers, as i assume they want to be, these would > be cleared (nulled) during a post-mark weak references iteration, after > which class unloading is also done.) > > Not sure I understood yr problem though, so more details will help. > -- ramki > > On 01/19/11 07:14, Keith McGuigan wrote: >> Hello, >> >> In some recent changes to JVMTI breakpoint code, I added some code to >> update a cache during an oop_do() iteration over of methodOop. The >> cache update involves dereferencing the methodOop's constMethodOop >> and getting the address to the code in it. >> >> Essentially, I'm doing something like this: >> >> JvmtiBreakpoint::oops_do(OopClosure* f) { >> for (int i = 0; i < _num_methods; ++i) { >> methodOop* m = method_at(i); >> f->do_oop(m); >> >> // update the cache in case the methodOop moved >> _cache[i] = (*m)->code_base() + _bci; >> } >> } >> >> (The actual code is in GrowableCache::oops_do() in jvmtiImpl.cpp, but >> this is the general idea) >> >> Doing this assumes that the methodOops will always be valid and refer >> to the same method. Considering what I'm seeing, I think this might >> be an invalid assumption. When oops_do() is called from >> PSMarkSweep::mark_sweep_phase3(), I occasionally see that the >> resulting methodOop* refers to something else when I'm updating the >> cache (not sure what, but it doesn't appear to be the same >> methodOop). It appears to be reset correctly in a later oops_do() >> iteration. >> >> Is this expected? And if so, is there any way for me to tell when >> doing the oops_do() whether or not the resulting oops are valid? >> We're seeing assertion failures and crashes in nightly testing when >> the oop is not the methodOop that we expected. I'll take a quick >> hack to make it work for now if we can fix it better later. >> >> If you've got anything for me to try, IM me (or email, but IM might >> be faster) and I'll give it a shot. >> >> -- >> - Keith From keith.mcguigan at oracle.com Wed Jan 19 17:42:40 2011 From: keith.mcguigan at oracle.com (Keith McGuigan) Date: Wed, 19 Jan 2011 12:42:40 -0500 Subject: invalid oops during oop_do() iteration? In-Reply-To: <4D371E93.1060506@oracle.com> References: <4D371E93.1060506@oracle.com> Message-ID: Actually, I'm going to attack this in a different fashion (a partial revert of the code), so don't worry too much about my first question (though I'm still curious for the answer). The code I'm talking about is here: http://web-east.east/~km88527/webrev/2011/6458402/src/share/vm/prims/jvmtiImpl.cpp.udiff.html The 'getCacheValue()' call basically does a _methodOop->code_size() + _bci, with some asserts to ensure that the bci lies within the code_size. Very occasionally during a full-gc (during mark_sweep_phase3), I get a _methodOop->code_size() that is radically different from what is expected. And it crashes if I try to print the methodOop, which leads me to believe that perhaps what is being pointed to in that oop* is not a methodOop at all anymore (or at the very least, not the one that was pointed to before). I'll send out a webrev soon for the paritally-reverted fix, which adds a gc-epilogue and calls it from the various GCs. -- - Keith On Jan 19, 2011, at 12:25 PM, Y. S. Ramakrishna wrote: > Can you send a pointer to the changes that you made that led > to this issue? In my repo, I do not see a method_at() method > of JvmtiBreakpoint to try to understand what the problem is. > > I didn't understand your statement "methopdOops will always be valid > and > refer to the same method". (methodOops that are marked by GC as > reachable > will be kept, but if you stash methodOops in yr breakpoint structure, > and these are weak pointers, as i assume they want to be, these would > be cleared (nulled) during a post-mark weak references iteration, > after > which class unloading is also done.) > > Not sure I understood yr problem though, so more details will help. > -- ramki > > On 01/19/11 07:14, Keith McGuigan wrote: >> Hello, >> In some recent changes to JVMTI breakpoint code, I added some code >> to update a cache during an oop_do() iteration over of methodOop. >> The cache update involves dereferencing the methodOop's >> constMethodOop and getting the address to the code in it. >> Essentially, I'm doing something like this: >> JvmtiBreakpoint::oops_do(OopClosure* f) { >> for (int i = 0; i < _num_methods; ++i) { >> methodOop* m = method_at(i); >> f->do_oop(m); >> // update the cache in case the methodOop moved >> _cache[i] = (*m)->code_base() + _bci; >> } >> } >> (The actual code is in GrowableCache::oops_do() in jvmtiImpl.cpp, >> but this is the general idea) >> Doing this assumes that the methodOops will always be valid and >> refer to the same method. Considering what I'm seeing, I think >> this might be an invalid assumption. When oops_do() is called >> from PSMarkSweep::mark_sweep_phase3(), I occasionally see that the >> resulting methodOop* refers to something else when I'm updating the >> cache (not sure what, but it doesn't appear to be the same >> methodOop). It appears to be reset correctly in a later oops_do() >> iteration. >> Is this expected? And if so, is there any way for me to tell when >> doing the oops_do() whether or not the resulting oops are valid? >> We're seeing assertion failures and crashes in nightly testing when >> the oop is not the methodOop that we expected. I'll take a quick >> hack to make it work for now if we can fix it better later. >> If you've got anything for me to try, IM me (or email, but IM might >> be faster) and I'll give it a shot. >> -- >> - Keith From y.s.ramakrishna at oracle.com Wed Jan 19 17:59:46 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Wed, 19 Jan 2011 09:59:46 -0800 Subject: invalid oops during oop_do() iteration? In-Reply-To: <4D371FA2.9030803@oracle.com> References: <4D371E93.1060506@oracle.com> <4D371FA2.9030803@oracle.com> Message-ID: <4D372692.5060306@oracle.com> On 01/19/11 09:30, Tony Printezis wrote: > Not very familiar with this code, but isn't mark_sweep_phase3 the phase > that adjusts the reference fields in the live objects to reflect the new > location of the referent *before* the objects are moved? Does this > explain Keith's observation? Ah, i see what you are saying; yes, that's probably it. He'd need to do the cache-updates earlier (during the weak oops phase), or leave the bp's relative to the code-base rather than having to update them each time after GC. -- ramki > > Y. S. Ramakrishna wrote: >> Can you send a pointer to the changes that you made that led >> to this issue? In my repo, I do not see a method_at() method >> of JvmtiBreakpoint to try to understand what the problem is. >> >> I didn't understand your statement "methopdOops will always be valid and >> refer to the same method". (methodOops that are marked by GC as reachable >> will be kept, but if you stash methodOops in yr breakpoint structure, >> and these are weak pointers, as i assume they want to be, these would >> be cleared (nulled) during a post-mark weak references iteration, after >> which class unloading is also done.) >> >> Not sure I understood yr problem though, so more details will help. >> -- ramki >> >> On 01/19/11 07:14, Keith McGuigan wrote: >>> Hello, >>> >>> In some recent changes to JVMTI breakpoint code, I added some code to >>> update a cache during an oop_do() iteration over of methodOop. The >>> cache update involves dereferencing the methodOop's constMethodOop >>> and getting the address to the code in it. >>> >>> Essentially, I'm doing something like this: >>> >>> JvmtiBreakpoint::oops_do(OopClosure* f) { >>> for (int i = 0; i < _num_methods; ++i) { >>> methodOop* m = method_at(i); >>> f->do_oop(m); >>> >>> // update the cache in case the methodOop moved >>> _cache[i] = (*m)->code_base() + _bci; >>> } >>> } >>> >>> (The actual code is in GrowableCache::oops_do() in jvmtiImpl.cpp, but >>> this is the general idea) >>> >>> Doing this assumes that the methodOops will always be valid and refer >>> to the same method. Considering what I'm seeing, I think this might >>> be an invalid assumption. When oops_do() is called from >>> PSMarkSweep::mark_sweep_phase3(), I occasionally see that the >>> resulting methodOop* refers to something else when I'm updating the >>> cache (not sure what, but it doesn't appear to be the same >>> methodOop). It appears to be reset correctly in a later oops_do() >>> iteration. >>> >>> Is this expected? And if so, is there any way for me to tell when >>> doing the oops_do() whether or not the resulting oops are valid? >>> We're seeing assertion failures and crashes in nightly testing when >>> the oop is not the methodOop that we expected. I'll take a quick >>> hack to make it work for now if we can fix it better later. >>> >>> If you've got anything for me to try, IM me (or email, but IM might >>> be faster) and I'll give it a shot. >>> >>> -- >>> - Keith From y.s.ramakrishna at oracle.com Wed Jan 19 18:03:01 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Wed, 19 Jan 2011 10:03:01 -0800 Subject: invalid oops during oop_do() iteration? In-Reply-To: References: <4D371E93.1060506@oracle.com> Message-ID: <4D372755.4020506@oracle.com> Thanks, yes, it's probably what Tony said. These methodOop's now probably point to their new locations to which the methodOopDesc's haven't moved yet. I'd have guessed an assert or two in method_at() may have caught it (the is_oop() or is_methodOop() would probably return false?) -- ramki On 01/19/11 09:42, Keith McGuigan wrote: > > Actually, I'm going to attack this in a different fashion (a partial > revert of the code), so don't worry too much about my first question > (though I'm still curious for the answer). > The code I'm talking about is here: > http://web-east.east/~km88527/webrev/2011/6458402/src/share/vm/prims/jvmtiImpl.cpp.udiff.html > > > The 'getCacheValue()' call basically does a _methodOop->code_size() + > _bci, with some asserts to ensure that the bci lies within the > code_size. Very occasionally during a full-gc (during > mark_sweep_phase3), I get a _methodOop->code_size() that is radically > different from what is expected. And it crashes if I try to print the > methodOop, which leads me to believe that perhaps what is being pointed > to in that oop* is not a methodOop at all anymore (or at the very least, > not the one that was pointed to before). > > I'll send out a webrev soon for the paritally-reverted fix, which adds a > gc-epilogue and calls it from the various GCs. > > -- > - Keith > > > On Jan 19, 2011, at 12:25 PM, Y. S. Ramakrishna wrote: > >> Can you send a pointer to the changes that you made that led >> to this issue? In my repo, I do not see a method_at() method >> of JvmtiBreakpoint to try to understand what the problem is. >> >> I didn't understand your statement "methopdOops will always be valid and >> refer to the same method". (methodOops that are marked by GC as reachable >> will be kept, but if you stash methodOops in yr breakpoint structure, >> and these are weak pointers, as i assume they want to be, these would >> be cleared (nulled) during a post-mark weak references iteration, after >> which class unloading is also done.) >> >> Not sure I understood yr problem though, so more details will help. >> -- ramki >> >> On 01/19/11 07:14, Keith McGuigan wrote: >>> Hello, >>> In some recent changes to JVMTI breakpoint code, I added some code to >>> update a cache during an oop_do() iteration over of methodOop. The >>> cache update involves dereferencing the methodOop's constMethodOop >>> and getting the address to the code in it. >>> Essentially, I'm doing something like this: >>> JvmtiBreakpoint::oops_do(OopClosure* f) { >>> for (int i = 0; i < _num_methods; ++i) { >>> methodOop* m = method_at(i); >>> f->do_oop(m); >>> // update the cache in case the methodOop moved >>> _cache[i] = (*m)->code_base() + _bci; >>> } >>> } >>> (The actual code is in GrowableCache::oops_do() in jvmtiImpl.cpp, but >>> this is the general idea) >>> Doing this assumes that the methodOops will always be valid and refer >>> to the same method. Considering what I'm seeing, I think this might >>> be an invalid assumption. When oops_do() is called from >>> PSMarkSweep::mark_sweep_phase3(), I occasionally see that the >>> resulting methodOop* refers to something else when I'm updating the >>> cache (not sure what, but it doesn't appear to be the same >>> methodOop). It appears to be reset correctly in a later oops_do() >>> iteration. >>> Is this expected? And if so, is there any way for me to tell when >>> doing the oops_do() whether or not the resulting oops are valid? >>> We're seeing assertion failures and crashes in nightly testing when >>> the oop is not the methodOop that we expected. I'll take a quick >>> hack to make it work for now if we can fix it better later. >>> If you've got anything for me to try, IM me (or email, but IM might >>> be faster) and I'll give it a shot. >>> -- >>> - Keith > From john.cuthbertson at oracle.com Wed Jan 19 23:04:25 2011 From: john.cuthbertson at oracle.com (john.cuthbertson at oracle.com) Date: Wed, 19 Jan 2011 23:04:25 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 2 new changesets Message-ID: <20110119230429.ADAFF47F6B@hg.openjdk.java.net> Changeset: 182e9624aa42 Author: johnc Date: 2011-01-19 13:01 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/182e9624aa42 7012642: G1: JumbleGC002 test aborts with segmentation violation due to uncaught stack overflow Summary: With recent G1 allocation path changes, the value of StackShadowPages in fast debug builds of the JVM, is no longer large enough to prevent the JVM C++ code from touching the stack guard pages. Increase the value of StackShadowPages to a suitable value. Reviewed-by: ysr, tonyp, coleenp ! src/cpu/x86/vm/globals_x86.hpp Changeset: cb913d743d09 Author: johnc Date: 2011-01-19 13:04 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/cb913d743d09 Merge From tony.printezis at oracle.com Thu Jan 20 03:00:26 2011 From: tony.printezis at oracle.com (tony.printezis at oracle.com) Date: Thu, 20 Jan 2011 03:00:26 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 6977804: G1: remove the zero-filling thread Message-ID: <20110120030029.6567247F92@hg.openjdk.java.net> Changeset: 0fa27f37d4d4 Author: tonyp Date: 2011-01-19 19:30 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/0fa27f37d4d4 6977804: G1: remove the zero-filling thread Summary: This changeset removes the zero-filling thread from G1 and collapses the two free region lists we had before (the "free" and "unclean" lists) into one. The new free list uses the new heap region sets / lists abstractions that we'll ultimately use it to keep track of all regions in the heap. A heap region set was also introduced for the humongous regions. Finally, this change increases the concurrency between the thread that completes freeing regions (after a cleanup pause) and the rest of the system (before we'd have to wait for said thread to complete before allocating a new region). The changest also includes a lot of refactoring and code simplification. Reviewed-by: jcoomes, johnc ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp - src/share/vm/gc_implementation/g1/concurrentZFThread.cpp - src/share/vm/gc_implementation/g1/concurrentZFThread.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.cpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.hpp + src/share/vm/gc_implementation/g1/heapRegionSet.cpp + src/share/vm/gc_implementation/g1/heapRegionSet.hpp + src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp + src/share/vm/gc_implementation/g1/heapRegionSets.cpp + src/share/vm/gc_implementation/g1/heapRegionSets.hpp ! src/share/vm/runtime/mutexLocker.cpp ! src/share/vm/runtime/mutexLocker.hpp ! src/share/vm/utilities/debug.hpp ! src/share/vm/utilities/globalDefinitions.hpp From john.cuthbertson at oracle.com Fri Jan 21 02:52:26 2011 From: john.cuthbertson at oracle.com (john.cuthbertson at oracle.com) Date: Fri, 21 Jan 2011 02:52:26 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 15 new changesets Message-ID: <20110121025255.C9A5B47FF9@hg.openjdk.java.net> Changeset: 4c851c931d00 Author: cl Date: 2011-01-13 16:43 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4c851c931d00 Added tag jdk7-b125 for changeset e24ab3fa6aaf ! .hgtags Changeset: e4f8c88cf6f0 Author: trims Date: 2011-01-13 22:49 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e4f8c88cf6f0 Added tag hs20-b06 for changeset e24ab3fa6aaf ! .hgtags Changeset: 76d6282dcfe5 Author: trims Date: 2011-01-13 22:53 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/76d6282dcfe5 7012348: Bump the HS20 build number to 07 Summary: Update the HS20 build number to 07 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 0915f9be781c Author: trims Date: 2011-01-13 22:54 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/0915f9be781c Merge Changeset: 75efcee5ac47 Author: minqi Date: 2010-10-07 13:49 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/75efcee5ac47 6966589: hs16-b08 causes java.lang.StackOverflowError Reviewed-by: mchung, dholmes, chrisphi ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoader.hpp Changeset: 85c73c0edb06 Author: kvn Date: 2011-01-18 17:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/85c73c0edb06 7012965: Fix failed on sparc for 7009756: volatile variables could be broken throw reflection API Summary: Use LDX/STX on v9 and LDD/STD on v8 sparc for volatile long moves. Reviewed-by: never ! src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp ! src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp ! src/os_cpu/solaris_sparc/vm/solaris_sparc.il Changeset: b599a4c6c2df Author: iveresov Date: 2011-01-18 18:00 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/b599a4c6c2df 7012766: assert(false) failed: DEBUG MESSAGE in MacroAssembler::debug32 Summary: Interpreter expects to see methodOop in rbx on method entry, which needs to be restored after call to profile_method. Reviewed-by: kvn, never ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp Changeset: 8012aa3ccede Author: never Date: 2011-01-13 22:15 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/8012aa3ccede 4926272: methodOopDesc::method_from_bcp is unsafe Reviewed-by: coleenp, jrose, kvn, dcubed ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/ci/bcEscapeAnalyzer.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/ci/ciMethodBlocks.cpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/ci/ciTypeFlow.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/methodLiveness.cpp ! src/share/vm/interpreter/bytecode.cpp ! src/share/vm/interpreter/bytecode.hpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp ! src/share/vm/interpreter/bytecodeStream.cpp ! src/share/vm/interpreter/bytecodeStream.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/bytecodes.cpp ! src/share/vm/interpreter/bytecodes.hpp ! src/share/vm/interpreter/interpreter.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/interpreter/templateInterpreter.cpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/oops/methodDataOop.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/methodComparator.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/relocator.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/vframeArray.cpp Changeset: 17c778814856 Author: coleenp Date: 2011-01-14 13:47 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/17c778814856 6811367: Fix code in HeapDumper::dump_heap() to avoid buffer overrun Summary: Check buffer size before using and use dynamic buffer sizes for subsequent calls. Reviewed-by: kamg, dholmes ! src/share/vm/services/heapDumper.cpp Changeset: 633a44a9fc45 Author: dcubed Date: 2011-01-19 07:15 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/633a44a9fc45 Merge ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp Changeset: c1a0ede55d6f Author: dcubed Date: 2011-01-19 07:41 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/c1a0ede55d6f 7012493: 2/2 6849574/Test.java fails with Internal Error (src/share/vm/prims/jvmtiTagMap.cpp:3294) Summary: Refine assertion to work before VMThread has started. Reviewed-by: ysr, never, dholmes, acorn ! src/share/vm/prims/jvmtiTagMap.cpp Changeset: 2f33b03bd915 Author: never Date: 2011-01-19 08:16 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/2f33b03bd915 7013008: 2/3 assert(method == NULL || check_method(method, bcp)) failed: bcp must point into method Summary: The Relocator should pass a NULL methodOop when rewriting since its resource array can never contain breakpoints. Reviewed-by: dcubed, kvn, coleenp ! src/share/vm/runtime/relocator.hpp Changeset: 9afee0b9fc1d Author: kamg Date: 2011-01-19 13:51 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/9afee0b9fc1d 7012505: BreakpointWithFullGC.sh fails with Internal Error (src/share/vm/oops/methodOop.cpp:220) Summary: Rebuild breakpoint cache at gc_epilogue instead of during oops_do Reviewed-by: dcubed, ysr, coleenp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiImpl.hpp ! src/share/vm/runtime/jniHandles.cpp Changeset: 02b6913287da Author: dcubed Date: 2011-01-19 19:24 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/02b6913287da Merge Changeset: 377371490991 Author: johnc Date: 2011-01-20 13:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/377371490991 Merge - src/share/vm/gc_implementation/g1/concurrentZFThread.cpp - src/share/vm/gc_implementation/g1/concurrentZFThread.hpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp From john.coomes at oracle.com Fri Jan 21 04:42:20 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Jan 2011 04:42:20 +0000 Subject: hg: jdk7/hotspot-gc/corba: 2 new changesets Message-ID: <20110121044223.C4AD347009@hg.openjdk.java.net> Changeset: d7532bcd3742 Author: cl Date: 2011-01-13 16:43 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/d7532bcd3742 Added tag jdk7-b125 for changeset 1ce58c72b789 ! .hgtags Changeset: 64775e83f4df Author: cl Date: 2011-01-20 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/64775e83f4df Added tag jdk7-b126 for changeset d7532bcd3742 ! .hgtags From john.coomes at oracle.com Fri Jan 21 04:42:30 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Jan 2011 04:42:30 +0000 Subject: hg: jdk7/hotspot-gc/jaxp: 7 new changesets Message-ID: <20110121044230.9E9634700A@hg.openjdk.java.net> Changeset: 116b935148bc Author: cl Date: 2011-01-13 16:43 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/116b935148bc Added tag jdk7-b125 for changeset 6c9bdee0cc3a ! .hgtags Changeset: 63190d0ca619 Author: ohair Date: 2010-12-16 13:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/63190d0ca619 7007257: jaxp 1.4.5 jdk7 1st integration Reviewed-by: joehw ! jaxp.properties Changeset: ce7b69a2d927 Author: lana Date: 2010-12-22 22:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/ce7b69a2d927 Merge Changeset: 3a829f5ba9d2 Author: lana Date: 2011-01-04 16:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/3a829f5ba9d2 Merge Changeset: 64c84c62ec2a Author: lana Date: 2011-01-13 14:55 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/64c84c62ec2a Merge Changeset: 2fde639439c1 Author: lana Date: 2011-01-14 13:48 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/2fde639439c1 Merge Changeset: c532d6dbc8d1 Author: cl Date: 2011-01-20 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/c532d6dbc8d1 Added tag jdk7-b126 for changeset 2fde639439c1 ! .hgtags From john.coomes at oracle.com Fri Jan 21 04:42:37 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Jan 2011 04:42:37 +0000 Subject: hg: jdk7/hotspot-gc/jaxws: 7 new changesets Message-ID: <20110121044237.AEF024700B@hg.openjdk.java.net> Changeset: e8fc02b4c889 Author: cl Date: 2011-01-13 16:43 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/e8fc02b4c889 Added tag jdk7-b125 for changeset d72eea121c3b ! .hgtags Changeset: aca101db2361 Author: ohair Date: 2010-12-16 13:14 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/aca101db2361 7006853: Integrate JAX-WS 2.2.2 RI into JDK 7 Reviewed-by: ramap ! jaxws.properties Changeset: 8ac759987b08 Author: lana Date: 2010-12-22 22:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/8ac759987b08 Merge Changeset: 466e89f7e5be Author: lana Date: 2011-01-04 16:37 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/466e89f7e5be Merge ! jaxws.properties Changeset: dba69d6345d9 Author: lana Date: 2011-01-13 14:55 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/dba69d6345d9 Merge Changeset: 6d772c5119d5 Author: lana Date: 2011-01-14 13:48 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/6d772c5119d5 Merge Changeset: ef19f173578c Author: cl Date: 2011-01-20 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/ef19f173578c Added tag jdk7-b126 for changeset 6d772c5119d5 ! .hgtags From john.coomes at oracle.com Fri Jan 21 04:46:02 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Jan 2011 04:46:02 +0000 Subject: hg: jdk7/hotspot-gc/jdk: 78 new changesets Message-ID: <20110121050009.F363C47013@hg.openjdk.java.net> Changeset: 3972926bc8f1 Author: cl Date: 2011-01-13 16:44 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3972926bc8f1 Added tag jdk7-b125 for changeset 0a56bdd709d0 ! .hgtags Changeset: 4d6f9aaa2600 Author: flar Date: 2010-12-14 13:25 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/4d6f9aaa2600 6766342: Improve performance of Ductus rasterizer Reviewed-by: jgodinez, prr ! make/sun/awt/make.depend ! make/sun/awt/mapfile-vers ! make/sun/awt/mapfile-vers-linux ! src/share/classes/sun/dc/DuctusRenderingEngine.java ! src/share/classes/sun/java2d/SurfaceData.java ! src/share/classes/sun/java2d/loops/CompositeType.java ! src/share/classes/sun/java2d/loops/MaskFill.java ! src/share/classes/sun/java2d/pipe/AAShapePipe.java ! src/share/classes/sun/java2d/pipe/AlphaColorPipe.java ! src/share/classes/sun/java2d/pipe/RenderingEngine.java ! src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java ! src/share/native/sun/java2d/loops/DrawParallelogram.c ! src/share/native/sun/java2d/loops/FillParallelogram.c ! src/share/native/sun/java2d/loops/MaskFill.c + src/share/native/sun/java2d/loops/ParallelogramUtils.h ! src/solaris/native/sun/java2d/loops/vis_IntArgbPre_Mask.c ! src/solaris/native/sun/java2d/loops/vis_SrcMaskFill.c + test/java/awt/Graphics2D/RenderClipTest/6766342.tests + test/java/awt/Graphics2D/RenderClipTest/RenderClipTest.java Changeset: 9d0eebb55003 Author: bae Date: 2010-12-15 19:47 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/9d0eebb55003 6782574: AffineTransformOp.filter(BufferedImage, BufferedImage) fails with InternalError Reviewed-by: igor, prr ! src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java ! src/share/native/sun/awt/image/awt_parseImage.c + test/java/awt/image/IncorrectSampleMaskTest.java Changeset: 6a219e5ccfd7 Author: bae Date: 2010-12-17 13:18 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/6a219e5ccfd7 7006948: FindBugs warning in IndexColorModel class Reviewed-by: igor, prr ! src/share/classes/java/awt/image/IndexColorModel.java Changeset: 33a0f66771d5 Author: jgodinez Date: 2010-12-17 09:39 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/33a0f66771d5 6635462: D3D: REGRESSION: XOR rendering is extremly slow Reviewed-by: igor, prr ! src/share/classes/javax/swing/DefaultDesktopManager.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java Changeset: 0125062d65b6 Author: bae Date: 2010-12-20 10:38 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/0125062d65b6 6736178: java.awt.image.SampleModel constructor unexpectedly throws IllegalArgumentException Reviewed-by: jgodinez, prr ! src/share/classes/java/awt/image/SampleModel.java Changeset: b0f9760f3103 Author: prr Date: 2010-12-22 13:32 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/b0f9760f3103 7007299: FileFontStrike appears not to be threadsafe? Reviewed-by: igor, jgodinez ! src/share/classes/sun/font/FileFontStrike.java Changeset: 1513ccf103a9 Author: prr Date: 2010-12-22 13:49 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/1513ccf103a9 6996867: Garbage rendering of LCD text with SRC composite mode Reviewed-by: igor, jgodinez ! src/share/classes/sun/java2d/SurfaceData.java + test/java/awt/Graphics2D/DrawString/LCDTextSrcEa.java Changeset: 78d0a8d449fd Author: bae Date: 2010-12-23 14:27 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/78d0a8d449fd 7002627: JNI Critical Arrays should be released with the original (unmodified) pointer Reviewed-by: jgodinez, prr ! src/share/native/sun/java2d/pipe/BufferedMaskBlit.c Changeset: cb3c0ffb27bb Author: lana Date: 2010-12-23 00:03 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/cb3c0ffb27bb Merge - src/share/classes/java/dyn/BootstrapMethod.java - src/share/classes/java/dyn/LinkagePermission.java - src/share/classes/java/dyn/MethodHandleProvider.java - src/share/classes/sun/dyn/JavaMethodHandle.java - src/share/demo/nio/zipfs/META-INF/services/java.nio.file.spi.FileSystemProvider - src/share/demo/nio/zipfs/com/sun/nio/zipfs/JarFileSystemProvider.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipCoder.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipConstants.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipDirectoryStream.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributeView.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributes.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileStore.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystem.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystemProvider.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipInfo.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipPath.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipUtils.java - test/java/dyn/JavaDocExamples.java Changeset: 155d91257957 Author: lana Date: 2010-12-23 08:47 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/155d91257957 Merge Changeset: 7fff69f28bf4 Author: jgodinez Date: 2010-12-23 10:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/7fff69f28bf4 6913300: Missing serialVersionUID in javax.print.attribute.standard.DialogTypeSelection Reviewed-by: igor, prr ! src/share/classes/javax/print/attribute/standard/DialogTypeSelection.java Changeset: b22c74e20a1b Author: jgodinez Date: 2010-12-23 11:01 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/b22c74e20a1b 6949749: regression cases need to be updated by removing "System.exit(0)" Reviewed-by: igor, prr ! test/java/awt/PrintJob/Text/StringWidth.java Changeset: 417acb7e8fa1 Author: prr Date: 2010-12-23 15:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/417acb7e8fa1 6891551: Font rasterisation uses more heap than needed for some strikes. Reviewed-by: jgodinez ! src/share/classes/sun/font/FileFontStrike.java Changeset: 4e47e55dd717 Author: prr Date: 2010-12-23 21:58 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/4e47e55dd717 6927458: font system should cache transient strikes with weak references. Reviewed-by: igor, jgodinez ! src/share/classes/sun/font/Font2D.java Changeset: 99c540ac926c Author: bae Date: 2010-12-24 14:05 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/99c540ac926c 6983028: java/awt/FontClass/FontPrivilege.java Reviewed-by: prr ! test/java/awt/FontClass/FontPrivilege.java Changeset: 14033e1600ac Author: prr Date: 2010-12-24 09:31 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/14033e1600ac 6997210: Solaris 11 has no development support for DGA: Cannot build JDK Reviewed-by: bae, ohair ! make/sun/Makefile Changeset: 70bfa0af3969 Author: bae Date: 2010-12-30 11:33 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/70bfa0af3969 7003434: test/closed/java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java fails with ClassCastExc Reviewed-by: jgodinez, prr ! src/windows/classes/sun/java2d/opengl/WGLVolatileSurfaceManager.java Changeset: 9320dcfb5398 Author: lana Date: 2011-01-05 11:21 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/9320dcfb5398 Merge - make/common/internal/BinaryPlugs.gmk ! make/sun/Makefile ! make/sun/awt/mapfile-vers ! make/sun/awt/mapfile-vers-linux ! src/share/classes/java/awt/image/IndexColorModel.java ! src/share/classes/java/awt/image/SampleModel.java ! src/share/classes/javax/swing/DefaultDesktopManager.java ! src/share/classes/sun/java2d/SurfaceData.java ! src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java ! src/share/native/sun/java2d/loops/DrawParallelogram.c ! src/share/native/sun/java2d/loops/FillParallelogram.c ! src/windows/classes/sun/awt/windows/WComponentPeer.java Changeset: 3db5ac2b4c62 Author: andrew Date: 2010-12-14 13:51 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3db5ac2b4c62 6444769: java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html fails Summary: Remove unneeded test Reviewed-by: anthony - test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html - test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.java Changeset: b9706aff91a3 Author: lana Date: 2010-12-15 11:49 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/b9706aff91a3 Merge - src/share/classes/sun/net/httpserver/SelectorCache.java Changeset: 4a0970a420d5 Author: anthony Date: 2010-12-16 21:48 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/4a0970a420d5 6993803: Request to update SplashScreen specification 6984255: Request for java.awt.SplashScreen spec update: mention possibility of having custom "-splash" option 6992416: [Spec clarification request] Is color deviation for splash screen image allowed? 6992833: [Spec clarification request] point (0,0) in SplashScreen.createGraphics() 6993071: java.awt.SplashScreen should mention that no unnecessary distortions to the image are allowed 6993113: [Spec clarification request] getSplashScreen(): null or HeadlessException? 6996439: [Spec clarification request] Is any delay with splashscreen appearance allowed? Summary: Update SplashScreen specification Reviewed-by: art ! src/share/classes/java/awt/SplashScreen.java Changeset: 8dbb797793b0 Author: anthony Date: 2010-12-22 17:37 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8dbb797793b0 6998323: Unexpected color change after invoking SplashScreen.update() Summary: Fix the blendRGB() function Reviewed-by: art, dcherepanov ! src/share/native/sun/awt/splashscreen/splashscreen_gfx_impl.h Changeset: 15c45fdd572c Author: lana Date: 2010-12-23 10:20 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/15c45fdd572c Merge - src/share/classes/java/dyn/BootstrapMethod.java - src/share/classes/java/dyn/LinkagePermission.java - src/share/classes/java/dyn/MethodHandleProvider.java - src/share/classes/sun/dyn/JavaMethodHandle.java - src/share/demo/nio/zipfs/META-INF/services/java.nio.file.spi.FileSystemProvider - src/share/demo/nio/zipfs/com/sun/nio/zipfs/JarFileSystemProvider.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipCoder.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipConstants.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipDirectoryStream.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributeView.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributes.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileStore.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystem.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystemProvider.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipInfo.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipPath.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipUtils.java - src/share/native/sun/font/layout/HebrewLigatureData.cpp - src/share/native/sun/font/layout/HebrewShaping.cpp - src/share/native/sun/font/layout/HebrewShaping.h - test/java/dyn/JavaDocExamples.java Changeset: 6e4d9f4466f6 Author: dcherepanov Date: 2010-12-27 18:37 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/6e4d9f4466f6 4887645: Remove "awt.threadgroup" system property Reviewed-by: art, anthony ! src/share/classes/sun/awt/SunToolkit.java Changeset: a0a4f73b3d1d Author: dcherepanov Date: 2010-12-27 18:42 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/a0a4f73b3d1d 6957765: Test Bug - javax/swing/SwingWorker/6480289/bug6480289.java failed on 1.7.0b94 but passed on previous Reviewed-by: art, alexp - test/javax/swing/SwingWorker/6480289/bug6480289.java Changeset: 33d4e0de0424 Author: dcherepanov Date: 2010-12-27 18:43 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/33d4e0de0424 6866808: nsk/stress/jck12a/jck12a014 crashes with SIGSEGV at [libjvm.so+0xc5b10] Reviewed-by: art ! src/solaris/native/sun/xawt/XToolkit.c Changeset: c90a0da7649e Author: dcherepanov Date: 2010-12-27 18:45 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c90a0da7649e 6921598: PrinterDialog hidden behind other frames Reviewed-by: art ! src/windows/native/sun/windows/awt_Dialog.cpp ! src/windows/native/sun/windows/awt_Dialog.h Changeset: 39e9d5613145 Author: dav Date: 2010-12-28 17:13 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/39e9d5613145 6999766: Changes to correct c/c++ language issues for use of parfait Reviewed-by: uta, amenkov ! src/windows/native/sun/windows/Devices.h ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt_Debug.cpp ! src/windows/native/sun/windows/awt_Debug.h ! src/windows/native/sun/windows/awt_DesktopProperties.cpp ! src/windows/native/sun/windows/awt_TextArea.h ! src/windows/native/sun/windows/awt_Toolkit.h Changeset: 8b05f9b91765 Author: dav Date: 2010-12-29 15:13 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8b05f9b91765 7008106: com/sun/awt/Translucency/WindowOpacity.java test fails just against jdk7 b122 Reviewed-by: dcherepanov ! test/com/sun/awt/Translucency/WindowOpacity.java Changeset: 78364959fc73 Author: dav Date: 2010-12-29 17:36 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/78364959fc73 6963357: After clicking the "Load" button,the case FileDialogUserFilterTest.html crashes in jdk7 b98. Reviewed-by: dcherepanov ! src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c Changeset: aa03f76d0e80 Author: lana Date: 2011-01-05 15:54 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/aa03f76d0e80 Merge - make/common/internal/BinaryPlugs.gmk ! src/share/classes/java/awt/SplashScreen.java ! src/share/classes/sun/awt/SunToolkit.java ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt_DesktopProperties.cpp ! src/windows/native/sun/windows/awt_Dialog.cpp ! src/windows/native/sun/windows/awt_Toolkit.h Changeset: bde32b5becf1 Author: lana Date: 2011-01-06 18:01 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/bde32b5becf1 Merge - test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html - test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.java - test/javax/swing/SwingWorker/6480289/bug6480289.java Changeset: ec02d02d3409 Author: okutsu Date: 2010-12-15 11:38 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/ec02d02d3409 6990037: font warnings in the build, missing fonts Reviewed-by: peytoia ! make/sun/awt/Makefile ! src/share/classes/sun/awt/FontConfiguration.java Changeset: cd7b5fb40005 Author: okutsu Date: 2010-12-17 16:56 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/cd7b5fb40005 7007583: (tz) Windows-only: update tzmappings for KB2443685 Reviewed-by: peytoia ! src/windows/lib/tzmappings Changeset: 7c7e4a0330bc Author: okutsu Date: 2010-12-17 17:13 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/7c7e4a0330bc 6644493: [Fmt-Da] SimpleDateFormat parsing RFC822 time offset is slow Reviewed-by: peytoia ! src/share/classes/java/text/SimpleDateFormat.java ! test/java/text/Format/DateFormat/ISO8601ZoneTest.java Changeset: f710204034fd Author: okutsu Date: 2010-12-17 18:06 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/f710204034fd 6983207: API: MessageFormat quote handling discrepancy Reviewed-by: peytoia ! src/share/classes/java/text/MessageFormat.java Changeset: 89d065844fb6 Author: okutsu Date: 2010-12-21 10:58 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/89d065844fb6 6943959: NumericShaper API doc doesn't describe ARABIC/EASTERN_ARABIC precedence Reviewed-by: peytoia ! src/share/classes/java/awt/font/NumericShaper.java Changeset: 8da79c7d137e Author: okutsu Date: 2010-12-21 11:20 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8da79c7d137e 7007905: javazic produces wrong line numbers Reviewed-by: peytoia ! make/tools/src/build/tools/javazic/Zoneinfo.java Changeset: 55d9205735e1 Author: naoto Date: 2010-12-21 16:14 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/55d9205735e1 4940539: Constructor of java.util.Locale should handle ISO 639-2 Language Codes Reviewed-by: okutsu ! src/share/classes/java/util/Locale.java ! test/java/util/Locale/LocaleTest.java Changeset: 403a88eeac15 Author: lana Date: 2010-12-22 16:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/403a88eeac15 Merge - src/share/classes/java/dyn/BootstrapMethod.java - src/share/classes/java/dyn/LinkagePermission.java - src/share/classes/java/dyn/MethodHandleProvider.java - src/share/classes/sun/dyn/JavaMethodHandle.java - src/share/demo/nio/zipfs/META-INF/services/java.nio.file.spi.FileSystemProvider - src/share/demo/nio/zipfs/com/sun/nio/zipfs/JarFileSystemProvider.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipCoder.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipConstants.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipDirectoryStream.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributeView.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileAttributes.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileStore.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystem.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipFileSystemProvider.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipInfo.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipPath.java - src/share/demo/nio/zipfs/com/sun/nio/zipfs/ZipUtils.java - src/share/native/sun/font/layout/HebrewLigatureData.cpp - src/share/native/sun/font/layout/HebrewShaping.cpp - src/share/native/sun/font/layout/HebrewShaping.h - test/java/dyn/JavaDocExamples.java Changeset: c8b383fd8adf Author: rupashka Date: 2010-12-23 17:39 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c8b383fd8adf 6973773: JCK manual case JSliderTests.html#JSlider fails in jdk7 b100 Reviewed-by: alexp ! src/share/classes/javax/swing/JSlider.java Changeset: 69b2e5838eee Author: rupashka Date: 2010-12-23 18:25 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/69b2e5838eee 7007708: TEST: javax/swing/JScrollBar/6542335/bug6542335.java failes agaisnt jdk7 on solaris/linux Reviewed-by: alexp ! test/javax/swing/JScrollBar/6542335/bug6542335.java Changeset: 94e0438c74c3 Author: okutsu Date: 2010-12-27 14:13 +0900 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/94e0438c74c3 7003643: [Fmt-Me] MessageFormat.toPattern produces wrong quoted string and subformat modifiers 7008195: [Fmt-Me] Improve MessageFormat.applyPattern performance Reviewed-by: naoto, peytoia ! src/share/classes/java/text/MessageFormat.java + test/java/text/Format/MessageFormat/Bug7003643.java ! test/java/util/PluggableLocale/DateFormatProviderTest.java ! test/java/util/PluggableLocale/DateFormatProviderTest.sh ! test/java/util/PluggableLocale/NumberFormatProviderTest.java ! test/java/util/PluggableLocale/NumberFormatProviderTest.sh ! test/java/util/PluggableLocale/fooprovider.jar ! test/java/util/PluggableLocale/providersrc/DateFormatProviderImpl.java + test/java/util/PluggableLocale/providersrc/FooDateFormat.java + test/java/util/PluggableLocale/providersrc/FooNumberFormat.java ! test/java/util/PluggableLocale/providersrc/Makefile ! test/java/util/PluggableLocale/providersrc/NumberFormatProviderImpl.java Changeset: c06d4327c0f2 Author: rupashka Date: 2010-12-27 15:28 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c06d4327c0f2 6959584: closed/javax/swing/JFileChooser/4847375/bug4847375.java : compilation failed Reviewed-by: alexp + test/javax/swing/JFileChooser/4847375/bug4847375.java Changeset: 72f1247e9ff5 Author: rupashka Date: 2010-12-27 17:41 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/72f1247e9ff5 6532833: PIT: Metal LAF - The right side border is not shown for the Spinner after the removing the buttons Reviewed-by: alexp ! src/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java + test/javax/swing/JSpinner/6532833/bug6532833.java Changeset: 2c3c88a389b0 Author: amenkov Date: 2010-12-28 16:37 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/2c3c88a389b0 6842956: Assertion error in javax_sound on 64-bit RHEL 5.3 with 32-bit JDK Reviewed-by: bae ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiIn.c Changeset: ac1e3f99a69e Author: amenkov Date: 2010-12-29 16:26 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/ac1e3f99a69e 7006997: A typo in MidiSystem.getTransmitter() implementation code Reviewed-by: dav ! src/share/classes/javax/sound/midi/MidiSystem.java Changeset: be27227ff554 Author: amenkov Date: 2010-12-30 14:57 +0300 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/be27227ff554 6989702: sound native code compiler warnings Reviewed-by: bae ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.h ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_Ports.c Changeset: 349b67ae3e08 Author: lana Date: 2011-01-04 23:41 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/349b67ae3e08 Merge - make/common/internal/BinaryPlugs.gmk ! make/sun/awt/Makefile ! src/share/classes/java/text/MessageFormat.java ! src/share/classes/javax/sound/midi/MidiSystem.java Changeset: fff6fd437f4a Author: lana Date: 2011-01-06 18:03 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/fff6fd437f4a Merge Changeset: 6d3fb387da8e Author: ksrini Date: 2010-12-14 07:42 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/6d3fb387da8e 6990106: FindBugs scan - Malicious code vulnerability Warnings in com.sun.java.util.jar.pack.* Reviewed-by: mduigou, briangoetz ! src/share/classes/com/sun/java/util/jar/pack/AdaptiveCoding.java ! src/share/classes/com/sun/java/util/jar/pack/Attribute.java ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ! src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java ! src/share/classes/com/sun/java/util/jar/pack/Code.java ! src/share/classes/com/sun/java/util/jar/pack/Coding.java ! src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java ! src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java ! src/share/classes/com/sun/java/util/jar/pack/Constants.java ! src/share/classes/com/sun/java/util/jar/pack/Driver.java ! src/share/classes/com/sun/java/util/jar/pack/Fixups.java ! src/share/classes/com/sun/java/util/jar/pack/Histogram.java ! src/share/classes/com/sun/java/util/jar/pack/Instruction.java ! src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java ! src/share/classes/com/sun/java/util/jar/pack/Package.java ! src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ! src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ! src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java ! src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java ! src/share/classes/com/sun/java/util/jar/pack/PropMap.java ! src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java ! src/share/classes/com/sun/java/util/jar/pack/Utils.java ! src/share/classes/java/util/jar/Pack200.java Changeset: 68cc30a3a1fd Author: ksrini Date: 2010-12-14 08:13 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/68cc30a3a1fd 7006704: (pack200) add missing file for 6990106 Reviewed-by: mduigou, briangoetz + src/share/classes/com/sun/java/util/jar/pack/FixedList.java Changeset: a72e7147816f Author: lancea Date: 2010-12-14 16:08 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/a72e7147816f 7006454: Typo in javadocs typo for Statement.executeBatch @since Reviewed-by: alanb ! src/share/classes/java/sql/Statement.java Changeset: 0ef137ae6f3b Author: alanb Date: 2010-12-15 09:15 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/0ef137ae6f3b 6927816: Demo crash in heaptracker with Non-Sun JDK due to possible violation of JNI spec Reviewed-by: ohair, alanb Contributed-by: spoole at uk.ibm.com ! src/share/demo/jvmti/heapTracker/heapTracker.c Changeset: e6ed7c95d94f Author: xuelei Date: 2010-12-15 22:42 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/e6ed7c95d94f 7006265: Javadoc warnings Reviewed-by: weijun ! src/share/classes/javax/net/ssl/X509ExtendedTrustManager.java Changeset: e67a399dd4ad Author: sundar Date: 2010-12-16 20:52 +0530 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/e67a399dd4ad 6980447: Rhino JavaScript engine code in jdk-7 has to updated with the latest code from Rhino 1.7R3. Summary: Updating Rhino javascript engine with version 1.7R3. Issue 6427783 (E4X support is missing from Sun's Mozilla JavaScript implementation) is also fixed as a side-effect. Reviewed-by: alanb, jjh ! src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java ! src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java ! src/share/classes/com/sun/script/javascript/RhinoTopLevel.java ! src/share/classes/com/sun/tools/script/shell/init.js - test/javax/script/E4XErrorTest.java ! test/javax/script/VersionTest.java Changeset: 1f0f0737f04e Author: weijun Date: 2010-12-17 11:03 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/1f0f0737f04e 6975866: api/org_ietf/jgss/GSSContext/index.html#wrapUnwrapIOTest started to fail since jdk7 b102 Reviewed-by: valeriep ! src/share/classes/sun/security/jgss/krb5/CipherHelper.java ! src/share/classes/sun/security/jgss/krb5/MessageToken_v2.java ! src/share/classes/sun/security/jgss/krb5/MicToken_v2.java ! src/share/classes/sun/security/jgss/krb5/WrapToken.java ! src/share/classes/sun/security/jgss/krb5/WrapToken_v2.java ! test/sun/security/krb5/auto/BasicKrb5Test.java ! test/sun/security/krb5/auto/Context.java - test/sun/security/krb5/auto/basic.sh Changeset: ae84db37130a Author: ksrini Date: 2010-12-18 09:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/ae84db37130a 7007157: (pack200) stripping attributes causes a NPE Reviewed-by: jrose, mduigou, dholmes ! src/share/classes/com/sun/java/util/jar/pack/ClassReader.java + test/tools/pack200/T7007157.java Changeset: 449dfb061fde Author: smarks Date: 2010-12-20 13:47 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/449dfb061fde 6880112: Project Coin: Port JDK core library code to use diamond operator Reviewed-by: darcy, lancea, alanb, briangoetz, mduigou, mchung ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java ! src/share/classes/com/sun/java/util/jar/pack/Package.java ! src/share/classes/java/io/DeleteOnExitHook.java ! src/share/classes/java/io/File.java ! src/share/classes/java/io/FileInputStream.java ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/java/io/FilePermission.java ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/io/ObjectOutputStream.java ! src/share/classes/java/io/ObjectStreamClass.java ! src/share/classes/java/lang/ApplicationShutdownHooks.java ! src/share/classes/java/lang/Character.java ! src/share/classes/java/lang/CharacterName.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/lang/Package.java ! src/share/classes/java/lang/ProcessBuilder.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/StringCoding.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/Throwable.java ! src/share/classes/java/lang/management/ManagementFactory.java ! src/share/classes/java/lang/management/PlatformComponent.java ! src/share/classes/java/lang/reflect/Constructor.java ! src/share/classes/java/lang/reflect/Proxy.java ! src/share/classes/java/lang/reflect/ReflectAccess.java ! src/share/classes/java/sql/DriverManager.java ! src/share/classes/java/util/AbstractList.java ! src/share/classes/java/util/Arrays.java ! src/share/classes/java/util/Collections.java ! src/share/classes/java/util/EnumMap.java ! src/share/classes/java/util/EnumSet.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/HashSet.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/IdentityHashMap.java ! src/share/classes/java/util/JumboEnumSet.java ! src/share/classes/java/util/LinkedHashMap.java ! src/share/classes/java/util/LinkedList.java ! src/share/classes/java/util/ListResourceBundle.java ! src/share/classes/java/util/PriorityQueue.java ! src/share/classes/java/util/Properties.java ! src/share/classes/java/util/RegularEnumSet.java ! src/share/classes/java/util/ServiceLoader.java ! src/share/classes/java/util/TimSort.java ! src/share/classes/java/util/TreeMap.java ! src/share/classes/java/util/TreeSet.java ! src/share/classes/java/util/WeakHashMap.java ! src/share/classes/java/util/logging/FileHandler.java ! src/share/classes/java/util/logging/Level.java ! src/share/classes/java/util/logging/LogManager.java ! src/share/classes/java/util/logging/LogRecord.java ! src/share/classes/java/util/logging/Logger.java ! src/share/classes/java/util/logging/Logging.java ! src/share/classes/java/util/prefs/AbstractPreferences.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/zip/ZipFile.java ! src/share/classes/java/util/zip/ZipOutputStream.java ! src/share/classes/sun/io/Converters.java ! src/share/classes/sun/util/logging/PlatformLogger.java ! src/solaris/classes/java/lang/ProcessEnvironment.java ! src/solaris/classes/java/util/prefs/FileSystemPreferences.java ! src/windows/classes/java/lang/ProcessEnvironment.java ! test/java/io/Serializable/NPEProvoker/NPEProvoker.java ! test/java/lang/instrument/ilib/Inject.java ! test/java/lang/instrument/ilib/InjectBytecodes.java ! test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java ! test/java/util/Random/DistinctSeeds.java ! test/java/util/logging/ClassLoaderLeakTest.java Changeset: d2a0e795c1c2 Author: weijun Date: 2010-12-21 17:35 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/d2a0e795c1c2 6996367: improve HandshakeHash Reviewed-by: xuelei ! src/share/classes/sun/security/ssl/ClientHandshaker.java ! src/share/classes/sun/security/ssl/HandshakeHash.java ! src/share/classes/sun/security/ssl/ServerHandshaker.java Changeset: d36ad8686f6d Author: kevinw Date: 2010-12-21 11:32 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/d36ad8686f6d 6968933: Clip loop() deadlock in DirectAudioDevice$DirectClip.run Reviewed-by: amenkov ! src/share/classes/com/sun/media/sound/DirectAudioDevice.java Changeset: 9deace8396f9 Author: ptisnovs Date: 2010-12-22 14:37 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/9deace8396f9 6560348: PIT : java/awt/xembed/server/RunTestXEmbed.java fails Summary: Testcase correction. Reviewed-by: anthony ! test/java/awt/xembed/server/TestXEmbedServer.java Changeset: 0d826185a92e Author: xuelei Date: 2010-12-22 06:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/0d826185a92e 6996365: Evaluate the priorities of cipher suites Reviewed-by: wetmore ! src/share/classes/sun/security/ssl/CipherSuite.java Changeset: d4c2d2d72cfc Author: valeriep Date: 2010-12-22 18:30 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/d4c2d2d72cfc 6581254: pkcs11 provider fails to parse configuration file contains windows short path Summary: Modified configuration parsing code to support "~". Reviewed-by: weijun ! src/share/classes/sun/security/pkcs11/Config.java + test/sun/security/pkcs11/Provider/ConfigShortPath.java + test/sun/security/pkcs11/Provider/csp.cfg Changeset: 6acd81baf2c7 Author: lana Date: 2010-12-22 23:12 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/6acd81baf2c7 Merge - src/share/classes/java/dyn/BootstrapMethod.java - src/share/classes/java/dyn/LinkagePermission.java - src/share/classes/java/dyn/MethodHandleProvider.java ! src/share/classes/java/lang/Character.java ! src/share/classes/java/util/ListResourceBundle.java - src/share/classes/sun/dyn/JavaMethodHandle.java - src/share/native/sun/font/layout/HebrewLigatureData.cpp - src/share/native/sun/font/layout/HebrewShaping.cpp - src/share/native/sun/font/layout/HebrewShaping.h - test/java/dyn/JavaDocExamples.java Changeset: 5beec82bf20d Author: ksrini Date: 2010-12-23 13:51 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/5beec82bf20d 7002386: (launcher) fix XshowSettings Reviewed-by: darcy, mchung, naoto ! src/share/bin/java.c ! src/share/classes/sun/launcher/LauncherHelper.java ! test/tools/launcher/Settings.java Changeset: 3c4afaacd345 Author: dcubed Date: 2010-12-23 23:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3c4afaacd345 7005984: 3/3 Incorrect values of S0C and S0CMX appear with -gcnewcapacity in jstat Summary: Swap S0C and S0CMX column values. Reviewed-by: ohair, dholmes, poonam ! src/share/classes/sun/tools/jstat/resources/jstat_options ! test/sun/tools/jstat/gcNewCapacityOutput1.awk Changeset: adff75ebdc00 Author: valeriep Date: 2010-12-22 19:19 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/adff75ebdc00 6924489: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_OPERATION_NOT_INITIALIZED Summary: Reset cipher state to un-initialized wherever necessary. Reviewed-by: weijun ! src/share/classes/sun/security/pkcs11/P11Cipher.java Changeset: 3254c3ae63fe Author: valeriep Date: 2010-12-27 11:39 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3254c3ae63fe Merge - src/share/classes/java/dyn/BootstrapMethod.java - src/share/classes/java/dyn/LinkagePermission.java - src/share/classes/java/dyn/MethodHandleProvider.java - src/share/classes/sun/dyn/JavaMethodHandle.java - src/share/native/sun/font/layout/HebrewLigatureData.cpp - src/share/native/sun/font/layout/HebrewShaping.cpp - src/share/native/sun/font/layout/HebrewShaping.h - test/java/dyn/JavaDocExamples.java Changeset: 6f2d19ef67b1 Author: alanb Date: 2011-01-04 17:49 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/6f2d19ef67b1 7010192: InetAddress.isReachable hits ShouldNotReachHere with hs20-b04 (win) Reviewed-by: chegar ! src/windows/native/java/net/Inet4AddressImpl.c ! src/windows/native/java/net/Inet6AddressImpl.c Changeset: 4379c762ec50 Author: sherman Date: 2011-01-04 14:17 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/4379c762ec50 7009618: regression test failed caused by the fix for 7003462 Summary: avoid caching the "ended" Inflater in ZipFile class Reviewed-by: alanb ! src/share/classes/java/util/zip/Inflater.java ! src/share/classes/java/util/zip/ZipFile.java + test/java/util/zip/ZipFile/FinalizeZipFile.java Changeset: 58aa8eadae5f Author: lana Date: 2011-01-04 17:05 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/58aa8eadae5f Merge - make/common/internal/BinaryPlugs.gmk ! src/share/classes/com/sun/java/util/jar/pack/AdaptiveCoding.java ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java ! src/share/classes/com/sun/java/util/jar/pack/Code.java ! src/share/classes/com/sun/java/util/jar/pack/Coding.java ! src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java ! src/share/classes/com/sun/java/util/jar/pack/Fixups.java ! src/share/classes/com/sun/java/util/jar/pack/Histogram.java ! src/share/classes/com/sun/java/util/jar/pack/Instruction.java ! src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ! src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ! src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/java/lang/ProcessBuilder.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/reflect/Constructor.java ! src/share/classes/java/util/AbstractList.java ! src/share/classes/java/util/Arrays.java ! src/share/classes/java/util/Collections.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/LinkedList.java ! src/share/classes/java/util/ListResourceBundle.java ! src/share/classes/java/util/PriorityQueue.java ! src/share/classes/java/util/Properties.java ! src/share/classes/java/util/TreeMap.java ! src/share/classes/java/util/TreeSet.java ! src/share/classes/java/util/logging/LogRecord.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/zip/ZipFile.java ! src/share/classes/sun/io/Converters.java ! src/share/classes/sun/tools/jstat/resources/jstat_options ! src/share/classes/sun/util/logging/PlatformLogger.java ! test/sun/security/krb5/auto/Context.java Changeset: d56c111ec6dc Author: jjg Date: 2011-01-06 14:32 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/d56c111ec6dc 7010537: javah no longer depends on javadoc Reviewed-by: ohair ! make/common/shared/Defs-java.gmk Changeset: c4ec4f80f44e Author: lana Date: 2011-01-06 18:05 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c4ec4f80f44e Merge - test/javax/script/E4XErrorTest.java - test/sun/security/krb5/auto/basic.sh Changeset: 1513e13fae08 Author: lana Date: 2011-01-13 15:03 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/1513e13fae08 Merge - test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.html - test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.java - test/javax/script/E4XErrorTest.java - test/javax/swing/SwingWorker/6480289/bug6480289.java - test/sun/security/krb5/auto/basic.sh Changeset: 8361ef97a0f9 Author: lana Date: 2011-01-14 13:48 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8361ef97a0f9 Merge Changeset: 29e09de1d0b4 Author: cl Date: 2011-01-20 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/29e09de1d0b4 Added tag jdk7-b126 for changeset 8361ef97a0f9 ! .hgtags From john.coomes at oracle.com Fri Jan 21 04:42:12 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 21 Jan 2011 04:42:12 +0000 Subject: hg: jdk7/hotspot-gc: 2 new changesets Message-ID: <20110121044212.A834747007@hg.openjdk.java.net> Changeset: b566d4909056 Author: cl Date: 2011-01-13 16:43 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/b566d4909056 Added tag jdk7-b125 for changeset 5c4df7e99277 ! .hgtags Changeset: bd70f76b0309 Author: cl Date: 2011-01-20 15:51 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/bd70f76b0309 Added tag jdk7-b126 for changeset b566d4909056 ! .hgtags From tony.printezis at oracle.com Sat Jan 22 07:29:00 2011 From: tony.printezis at oracle.com (tony.printezis at oracle.com) Date: Sat, 22 Jan 2011 07:29:00 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7013718: G1: small fixes for two assert/guarantee failures Message-ID: <20110122072905.4EB8247067@hg.openjdk.java.net> Changeset: a672e43650cc Author: tonyp Date: 2011-01-21 11:30 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/a672e43650cc 7013718: G1: small fixes for two assert/guarantee failures Summary: Two small fixes to deal with a guarantee failure (the marking thread should join the SuspendibleThreadSet before calling a method that does pause prediction work so that said method is never called during a pause) and an assert failure (an assert is too strong). Reviewed-by: iveresov, johnc ! src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.cpp From linuxhippy at gmail.com Sat Jan 22 20:19:24 2011 From: linuxhippy at gmail.com (Clemens Eisserer) Date: Sat, 22 Jan 2011 21:19:24 +0100 Subject: Integration of ParralellGC and CMS Message-ID: Hi, Just to be curious, how hard would it be to integrate the Parallell(Old)GC with CMS? As far as I can imagine it would be quite beneficial to fall back to a multithreaded stop-the-world collector compared to a single-threaded one. Another idea would be a multithreaded CMS stop-the-world defragmentation phase, which could prevent CMS to fail because of fragmentation. The reason I ask is because I should start to work on a master thesis soon and java's garbage collectors would surely be an intersting topic :) Thank you in advance, Clemens From peter.schuller at infidyne.com Sun Jan 23 08:21:13 2011 From: peter.schuller at infidyne.com (Peter Schuller) Date: Sun, 23 Jan 2011 09:21:13 +0100 Subject: G1GC Full GCs In-Reply-To: References: <4C3CB3E9.4040305@oracle.com> Message-ID: > ?- most of the time no old gen regions are selected for collection at all! > Here's a graph of just old regions: > http://people.apache.org/~todd/hbase-fragmentation/old-regions.png This is consistent with my anecdotal observations as well and I believe it is expected. What I have observed happening is that non-young (partial) collections always happen after the marking phases some number of times, followed by young collections only until another marking phase is triggered and completed. I think this makes sense because region selection is based on cost heuristics largely based on liveness data from marking. So you have your marking phase followed by a period of decreasing availability of non-young regions that are eligible for collection given the GC efficiency goals (and the pause time goals), until there are 0 such. Young collections then continue until unrelated criteria trigger a new marking phase, giving non-young regions a chance again to get above the eligibility watermark. -- / Peter Schuller _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From peter.schuller at infidyne.com Sun Jan 23 08:42:04 2011 From: peter.schuller at infidyne.com (Peter Schuller) Date: Sun, 23 Jan 2011 09:42:04 +0100 Subject: G1GC Full GCs In-Reply-To: References: <4C3CB3E9.4040305@oracle.com> Message-ID: > I still seem to be putting off GC of non-young regions too much though. I Part of my experiments I have been harping on was the below change to cut GC efficiency out of the decision to perform non-young collections. I'm not suggesting it actually be disabled, but perhaps it can be adjusted to fit your workload? If there is nothing outright wrong in terms of predictions and the problem is due to cost estimates being too high, that may be a way to avoid full GC:s at the expense of more expensive GC activity. This smells like something that should be a tweakable VM option. Just like GCTimeRatio affects heap expansion decisions, something to affect this (probably just a ratio applied to the test below?). Another thing: This is to a large part my human confirmation biased brain speaking, but I would be really interested to find out if if the slow build-up you seem to be experiencing is indeed due to rs scan costs de to sparse table overflow (I've been harping about roughly the same thing several times so maybe people are tired of it; most recently in the thread "g1: dealing with high rates of inter-region pointer writes"). Is your test easily runnable so that one can reproduce? Preferably without lots of hbase/hadoop knowledge. I.e., is it something that can be run in a self-contained fashion fairly easily? Here's the patch indicating where to adjust the efficiency thresholding: --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Fri Dec 17 23:32:58 2010 -0800 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Sun Jan 23 09:21:54 2011 +0100 @@ -1463,7 +1463,7 @@ if ( !_last_young_gc_full ) { if ( _should_revert_to_full_young_gcs || _known_garbage_ratio < 0.05 || - (adaptive_young_list_length() && + (adaptive_young_list_length() && //false && // scodetodo (get_gc_eff_factor() * cur_efficiency < predict_young_gc_eff())) ) { set_full_young_gcs(true); } -- / Peter Schuller _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From todd at cloudera.com Mon Jan 24 06:16:43 2011 From: todd at cloudera.com (Todd Lipcon) Date: Sun, 23 Jan 2011 22:16:43 -0800 Subject: G1GC Full GCs In-Reply-To: References: <4C3CB3E9.4040305@oracle.com> Message-ID: Unfortunately my test is not easy to reproduce in its current form. But as I look more and more into it, it looks like we're running into the same issue. I added some code at the end of the mark phase that, after it sorts the regions by efficiency, will print an object histogram for any regions that are >98% garbage but very inefficient (<100KB/ms predicted collection rate) Here's an example of an "uncollectable" region that is all garbage but for one object: Region 0x00002aaab0203e18 ( M1) [0x00002aaaf3800000, 0x00002aaaf3c00000] Used: 4096K, garbage: 4095K. Eff: 6.448103 K/ms Very low-occupancy low-efficiency region. Histogram: num #instances #bytes class name ---------------------------------------------- 1: 1 280 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry; Total 1 280 At 6K/ms it's predicting take 600+ms to collect this region, so it will never happen. I can't think of any way that there would be a high mutation rate of references to this Entry object.. So, my shot-in-the-dark theory is similar to what Peter was thinking. When a region through its lifetime has a large number of other regions reference it, even briefly, its sparse table will overflow. Then, later in life when it's down to even just one object with a very small number of inbound references, it still has all of those coarse entries -- they don't get scrubbed because those regions are suffering the same issue. Thoughts? -Todd On Sun, Jan 23, 2011 at 12:42 AM, Peter Schuller < peter.schuller at infidyne.com> wrote: > > I still seem to be putting off GC of non-young regions too much though. I > > Part of my experiments I have been harping on was the below change to > cut GC efficiency out of the decision to perform non-young > collections. I'm not suggesting it actually be disabled, but perhaps > it can be adjusted to fit your workload? If there is nothing outright > wrong in terms of predictions and the problem is due to cost estimates > being too high, that may be a way to avoid full GC:s at the expense of > more expensive GC activity. This smells like something that should be > a tweakable VM option. Just like GCTimeRatio affects heap expansion > decisions, something to affect this (probably just a ratio applied to > the test below?). > > Another thing: This is to a large part my human confirmation biased > brain speaking, but I would be really interested to find out if if the > slow build-up you seem to be experiencing is indeed due to rs scan > costs de to sparse table overflow (I've been harping about roughly the > same thing several times so maybe people are tired of it; most > recently in the thread "g1: dealing with high rates of inter-region > pointer writes"). > > Is your test easily runnable so that one can reproduce? Preferably > without lots of hbase/hadoop knowledge. I.e., is it something that can > be run in a self-contained fashion fairly easily? > > Here's the patch indicating where to adjust the efficiency thresholding: > > --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Fri > Dec 17 23:32:58 2010 -0800 > +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Sun > Jan 23 09:21:54 2011 +0100 > @@ -1463,7 +1463,7 @@ > if ( !_last_young_gc_full ) { > if ( _should_revert_to_full_young_gcs || > _known_garbage_ratio < 0.05 || > - (adaptive_young_list_length() && > + (adaptive_young_list_length() && //false && // scodetodo > (get_gc_eff_factor() * cur_efficiency < > predict_young_gc_eff())) ) { > set_full_young_gcs(true); > } > > > -- > / Peter Schuller > -- Todd Lipcon Software Engineer, Cloudera -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From todd at cloudera.com Mon Jan 24 08:24:55 2011 From: todd at cloudera.com (Todd Lipcon) Date: Mon, 24 Jan 2011 00:24:55 -0800 Subject: G1GC Full GCs In-Reply-To: References: <4C3CB3E9.4040305@oracle.com> Message-ID: Added one more bit of debug output here.. whenever it comes across a region with only one live object, it also dumps the stats on the regions in the coarse rset. For example: Region 0x00002aaab0c48388 ( M1) [0x00002aac7f000000, 0x00002aac7f400000] Used: 4096K, garbage: 4095K. Eff: 30.061317 K/ms Very low-occupancy low-efficiency region. RSet: coarse: 90112 fine: 0 sparse: 2717 num #instances #bytes class name ---------------------------------------------- 1: 1 56 java.util.concurrent.locks.AbstractQueuedSynchronizer$Node Total 1 56 Coarse region references: -------------------------- Region 0x00002aaab04b5288 ( M1) [0x00002aab5b000000, 0x00002aab5b400000] Used: 4096K, garbage: 4094K. Eff: 243.385409 K/ms Region 0x00002aaab04c2708 ( M1) [0x00002aab5d000000, 0x00002aab5d400000] Used: 4096K, garbage: 1975K. Eff: 366.659049 K/ms Region 0x00002aaab054de48 ( M1) [0x00002aab72000000, 0x00002aab72400000] Used: 4096K, garbage: 4095K. Eff: 40.958295 K/ms Region 0x00002aaab0622648 ( M1) [0x00002aab92000000, 0x00002aab92400000] Used: 4096K, garbage: 4042K. Eff: 40.304866 K/ms Region 0x00002aaab0c30fa8 ( M1) [0x00002aac7b800000, 0x00002aac7bc00000] Used: 4096K, garbage: 4094K. Eff: 53.233756 K/ms Region 0x00002aaab0c32a38 ( M1) [0x00002aac7bc00000, 0x00002aac7c000000] Used: 4096K, garbage: 4094K. Eff: 143.159938 K/ms Region 0x00002aaab0c4b8a8 ( M1) [0x00002aac7f800000, 0x00002aac7fc00000] Used: 4096K, garbage: 4095K. Eff: 53.680457 K/ms Region 0x00002aaab0c50858 ( M1) [0x00002aac80400000, 0x00002aac80800000] Used: 4096K, garbage: 4095K. Eff: 20.865626 K/ms Region 0x00002aaab0c522e8 ( M1) [0x00002aac80800000, 0x00002aac80c00000] Used: 4096K, garbage: 4094K. Eff: 36.474733 K/ms Region 0x00002aaab0c6b158 ( M1) [0x00002aac84400000, 0x00002aac84800000] Used: 4096K, garbage: 4095K. Eff: 19.686717 K/ms Region 0x00002aaab0d74b58 ( M1) [0x00002aacac400000, 0x00002aacac800000] Used: 4096K, garbage: 4095K. Eff: 36.379891 K/ms -------------------------- So here we have a region that has 11 coarse rset members, all of which are pretty low efficiency. So, they're not going to get collected, and neither will this region. Basically we always devolve into a case where there are a bunch of these inefficient regions all referring to each other in the coarse rsets. Would it be possible to add some phase which "breaks down" the coarse members back into sparse/fine? Note how in this case all of the fine references are gone. I imagine most of the coarse references are "ghosts" as well - once upon a time there was an object in those regions that referred to this region, but they're long since dead. On Sun, Jan 23, 2011 at 10:16 PM, Todd Lipcon wrote: > Unfortunately my test is not easy to reproduce in its current form. But as > I look more and more into it, it looks like we're running into the same > issue. > > I added some code at the end of the mark phase that, after it sorts the > regions by efficiency, will print an object histogram for any regions that > are >98% garbage but very inefficient (<100KB/ms predicted collection rate) > > Here's an example of an "uncollectable" region that is all garbage but for > one object: > > Region 0x00002aaab0203e18 ( M1) [0x00002aaaf3800000, 0x00002aaaf3c00000] > Used: 4096K, garbage: 4095K. Eff: 6.448103 K/ms > Very low-occupancy low-efficiency region. Histogram: > > num #instances #bytes class name > ---------------------------------------------- > 1: 1 280 > [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry; > Total 1 280 > > At 6K/ms it's predicting take 600+ms to collect this region, so it will > never happen. > > I can't think of any way that there would be a high mutation rate of > references to this Entry object.. > > So, my shot-in-the-dark theory is similar to what Peter was thinking. When > a region through its lifetime has a large number of other regions reference > it, even briefly, its sparse table will overflow. Then, later in life when > it's down to even just one object with a very small number of inbound > references, it still has all of those coarse entries -- they don't get > scrubbed because those regions are suffering the same issue. > > Thoughts? > > -Todd > > On Sun, Jan 23, 2011 at 12:42 AM, Peter Schuller < > peter.schuller at infidyne.com> wrote: > >> > I still seem to be putting off GC of non-young regions too much though. >> I >> >> Part of my experiments I have been harping on was the below change to >> cut GC efficiency out of the decision to perform non-young >> collections. I'm not suggesting it actually be disabled, but perhaps >> it can be adjusted to fit your workload? If there is nothing outright >> wrong in terms of predictions and the problem is due to cost estimates >> being too high, that may be a way to avoid full GC:s at the expense of >> more expensive GC activity. This smells like something that should be >> a tweakable VM option. Just like GCTimeRatio affects heap expansion >> decisions, something to affect this (probably just a ratio applied to >> the test below?). >> >> Another thing: This is to a large part my human confirmation biased >> brain speaking, but I would be really interested to find out if if the >> slow build-up you seem to be experiencing is indeed due to rs scan >> costs de to sparse table overflow (I've been harping about roughly the >> same thing several times so maybe people are tired of it; most >> recently in the thread "g1: dealing with high rates of inter-region >> pointer writes"). >> >> Is your test easily runnable so that one can reproduce? Preferably >> without lots of hbase/hadoop knowledge. I.e., is it something that can >> be run in a self-contained fashion fairly easily? >> >> Here's the patch indicating where to adjust the efficiency thresholding: >> >> --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Fri >> Dec 17 23:32:58 2010 -0800 >> +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Sun >> Jan 23 09:21:54 2011 +0100 >> @@ -1463,7 +1463,7 @@ >> if ( !_last_young_gc_full ) { >> if ( _should_revert_to_full_young_gcs || >> _known_garbage_ratio < 0.05 || >> - (adaptive_young_list_length() && >> + (adaptive_young_list_length() && //false && // scodetodo >> (get_gc_eff_factor() * cur_efficiency < >> predict_young_gc_eff())) ) { >> set_full_young_gcs(true); >> } >> >> >> -- >> / Peter Schuller >> > > > > -- > Todd Lipcon > Software Engineer, Cloudera > -- Todd Lipcon Software Engineer, Cloudera -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From jon.masamitsu at oracle.com Mon Jan 24 15:19:11 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Mon, 24 Jan 2011 07:19:11 -0800 Subject: Integration of ParralellGC and CMS In-Reply-To: References: Message-ID: <4D3D986F.5060409@oracle.com> On 01/22/11 12:19, Clemens Eisserer wrote: > Hi, > > Just to be curious, how hard would it be to integrate the > Parallell(Old)GC with CMS? > As far as I can imagine it would be quite beneficial to fall back to a > multithreaded stop-the-world collector compared to a single-threaded > one. I've tried it. It's hard. Partly because the ParallelGC collector that has the ParallelOldGC is written in a different style than the CMS collector. Besides the necessity of creating interfaces to the ParallelOldGC that can be shared by both ParallelGC and CMS, there are some not so obvious differences between concepts in the two styles that tripped me up. Conceptually it's straightforward, but the engineering is complicated. If you just want to re-implement the ParallelOldGC in CMS, lots of the code can be reused. You'll just have to find the places where code has to be modified to make it work. > Another idea would be a multithreaded CMS stop-the-world > defragmentation phase, which could prevent CMS to fail because of > fragmentation. > > The reason I ask is because I should start to work on a master thesis > soon and java's garbage collectors would surely be an intersting topic > :) > > Thank you in advance, Clemens From suenaga.yasumasa at oss.ntt.co.jp Tue Jan 25 01:02:37 2011 From: suenaga.yasumasa at oss.ntt.co.jp (Yasumasa Suenaga) Date: Tue, 25 Jan 2011 10:02:37 +0900 Subject: jstat LGCC column shows In-Reply-To: <4D229DDF.1060007@oss.ntt.co.jp> References: <4D229DDF.1060007@oss.ntt.co.jp> Message-ID: <4D3E212D.7010908@oss.ntt.co.jp> Hi, I made a patch for resolving this problem and attached it to this email. I hope to discuss this problem. Thanks. (2011/01/04 13:11), Yasumasa Suenaga wrote: > Hi, > > I ran SPECjvm2008 with OpenJDK6 provided by Fedora14 and Ubuntu 10.10 . > I got following messages when I attached jstat to that VM with "-gccause" option: > > ------------ > root at ubuntu10:~# jstat -gccause 8411 500 > S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC > 0.00 0.00 12.11 12.65 31.36 1 0.005 2 0.037 0.042 System.gc() No GC > 0.00 0.00 12.11 12.65 31.36 1 0.005 2 0.037 0.042 System.gc() No GC > > -- snip -- > > 0.00 0.00 76.81 12.65 31.58 1 0.005 2 0.037 0.042 System.gc() No GC > 42.20 0.00 0.00 12.65 33.10 4 0.011 2 0.037 0.047 unknown GCCause No GC > 91.06 0.00 0.00 15.12 34.10 10 0.019 2 0.037 0.056 unknown GCCause No GC > > -- snip -- > > ------------ > > "LGCC" column shows "unknown GCCause". > I want to get "REAL" last gccause (I want to know what happened in VM, relating to GC). > (In this case, I guess that LGCC shows "Allocation Failure".) > > > I found the comment in constructor of VM_GC_Operation class as following: > (OpenJDK7 (HS20) and OpenJDK6(HS19) are similar.) > > ------------ > // A subclass constructor will likely overwrite the following > _gc_cause = GCCause::_no_cause_specified; > ------------ > > > I checked constructor of subclass of VM_GC_Operation, and following classes do not > initialize "_gc_cause" member: > > - VM_HeapDumper > - VM_GC_HeapInspection > - VM_GenCollectForAllocation > - VM_G1OperationWithAllocRequest > - VM_ParallelGCFailedAllocation > - VM_ParallelGCFailedPermanentAllocation > > I think that we should initialize "_gc_cause" in constructor of these classes. > > > Best regards, > > -- ?????????? ?????? OSS ??? ?????????Web???? ???????????????? TEL: 03-5860-5105 (?? 5069) E-mail: suenaga.yasumasa at oss.ntt.co.jp -------------- next part -------------- diff -r 102466e70deb src/share/vm/gc_implementation/g1/vm_operations_g1.hpp --- a/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp Thu Jan 20 15:52:05 2011 -0800 +++ b/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp Tue Jan 25 09:39:32 2011 +0900 @@ -45,7 +45,9 @@ VM_G1OperationWithAllocRequest(unsigned int gc_count_before, size_t word_size) : VM_GC_Operation(gc_count_before), - _word_size(word_size), _result(NULL), _pause_succeeded(false) { } + _word_size(word_size), _result(NULL), _pause_succeeded(false) { + _gc_cause = GCCause::_g1_alloc_request; + } HeapWord* result() { return _result; } bool pause_succeeded() { return _pause_succeeded; } }; diff -r 102466e70deb src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp --- a/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp Thu Jan 20 15:52:05 2011 -0800 +++ b/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp Tue Jan 25 09:39:32 2011 +0900 @@ -39,6 +39,7 @@ _is_tlab(is_tlab), _result(NULL) { + _gc_cause = GCCause::_allocation_failure; } void VM_ParallelGCFailedAllocation::doit() { @@ -64,6 +65,7 @@ _size(size), _result(NULL) { + _gc_cause = GCCause::_allocation_failure; } void VM_ParallelGCFailedPermanentAllocation::doit() { diff -r 102466e70deb src/share/vm/gc_implementation/shared/vmGCOperations.hpp --- a/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Thu Jan 20 15:52:05 2011 -0800 +++ b/src/share/vm/gc_implementation/shared/vmGCOperations.hpp Tue Jan 25 09:39:32 2011 +0900 @@ -137,6 +137,7 @@ VM_GC_Operation(0 /* total collections, dummy, ignored */, 0 /* total full collections, dummy, ignored */, request_full_gc) { + _gc_cause = GCCause::_heap_inspection; _out = out; _full_gc = request_full_gc; _need_prologue = need_prologue; @@ -162,6 +163,7 @@ : VM_GC_Operation(gc_count_before), _size(size), _tlab(tlab) { + _gc_cause = GCCause::_collect_for_allocation; _res = NULL; } ~VM_GenCollectForAllocation() {} diff -r 102466e70deb src/share/vm/gc_interface/gcCause.cpp --- a/src/share/vm/gc_interface/gcCause.cpp Thu Jan 20 15:52:05 2011 -0800 +++ b/src/share/vm/gc_interface/gcCause.cpp Tue Jan 25 09:39:32 2011 +0900 @@ -48,6 +48,9 @@ case _allocation_failure: return "Allocation Failure"; + case _collect_for_allocation: + return "Collect for Allocation"; + case _gc_locker: return "GCLocker Initiated GC"; @@ -81,6 +84,9 @@ case _g1_inc_collection_pause: return "G1 Evacuation Pause"; + case _g1_alloc_request: + return "G1 Allocation Request"; + case _last_ditch_collection: return "Last ditch collection"; diff -r 102466e70deb src/share/vm/gc_interface/gcCause.hpp --- a/src/share/vm/gc_interface/gcCause.hpp Thu Jan 20 15:52:05 2011 -0800 +++ b/src/share/vm/gc_interface/gcCause.hpp Tue Jan 25 09:39:32 2011 +0900 @@ -51,6 +51,7 @@ _no_gc, _no_cause_specified, _allocation_failure, + _collect_for_allocation, /* implementation specific */ @@ -66,6 +67,7 @@ _adaptive_size_policy, _g1_inc_collection_pause, + _g1_alloc_request, _last_ditch_collection, _last_gc_cause diff -r 102466e70deb src/share/vm/services/heapDumper.cpp --- a/src/share/vm/services/heapDumper.cpp Thu Jan 20 15:52:05 2011 -0800 +++ b/src/share/vm/services/heapDumper.cpp Tue Jan 25 09:39:32 2011 +0900 @@ -1390,6 +1390,7 @@ VM_GC_Operation(0 /* total collections, dummy, ignored */, 0 /* total full collections, dummy, ignored */, gc_before_heap_dump) { + _gc_cause = GCCause::_heap_dump; _local_writer = writer; _gc_before_heap_dump = gc_before_heap_dump; _is_segmented_dump = false; From tony.printezis at oracle.com Wed Jan 26 13:40:51 2011 From: tony.printezis at oracle.com (tony.printezis at oracle.com) Date: Wed, 26 Jan 2011 13:40:51 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7014261: G1: RSet-related failures Message-ID: <20110126134053.BBBF247167@hg.openjdk.java.net> Changeset: 97ba643ea3ed Author: tonyp Date: 2011-01-25 17:58 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/97ba643ea3ed 7014261: G1: RSet-related failures Summary: A race between the concurrent cleanup thread and the VM thread while it is processing the "expanded sparse table list" causes both threads to try to free the same sparse table entry and either causes one of the threads to fail or leaves the entry in an inconsistent state. The solution is purge all entries on the expanded list that correspond go regions that are being cleaned up. Reviewed-by: brutisso, johnc ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp ! src/share/vm/gc_implementation/g1/sparsePRT.cpp ! src/share/vm/gc_implementation/g1/sparsePRT.hpp From jon.masamitsu at oracle.com Wed Jan 26 20:04:45 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Wed, 26 Jan 2011 12:04:45 -0800 Subject: Integration of ParralellGC and CMS In-Reply-To: References: Message-ID: <4D407E5D.2020909@oracle.com> On 1/22/2011 12:19 PM, Clemens Eisserer wrote: > Hi, > > Just to be curious, how hard would it be to integrate the > Parallell(Old)GC with CMS? > As far as I can imagine it would be quite beneficial to fall back to a > multithreaded stop-the-world collector compared to a single-threaded > one. > > Another idea would be a multithreaded CMS stop-the-world > defragmentation phase, which could prevent CMS to fail because of > fragmentation. Generally CMS fights fragmentation by a STW compaction. Doing a MT version of that would be the integration of ParallelOldGC into CMS which was your first question. But perhaps that's not what you meant. Any STW full compaction would likely be too disruptive for a user of CMS even if MT. Perhaps more interesting would be an incremental STW compaction where only part of the old gen is compacted. A complete marking of the live data would be needed for the increment of the compaction. But you'd only need to do the actual compaction (moving data and adjusting pointers) on part of the old gen. Look at the serial old gen collector if you're interested in this. The ParallelOldGC will be somewhat more complicated. We're not particularly interested in it because that's what G1 does. From y.s.ramakrishna at oracle.com Wed Jan 26 20:38:21 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Wed, 26 Jan 2011 12:38:21 -0800 Subject: Integration of ParralellGC and CMS In-Reply-To: <4D407E5D.2020909@oracle.com> References: <4D407E5D.2020909@oracle.com> Message-ID: <4D40863D.80804@oracle.com> On 01/26/11 12:04, Jon Masamitsu wrote: > ... Perhaps more interesting would be an incremental STW > compaction where only part of the old gen is compacted. A complete > marking of the live data would be needed for the increment of the > compaction. But you'd only need to do the actual compaction (moving Right. Or at least building of sufficient remebered set info to make such scanning of the rest of the heap for pointers into the space being compacted relatively quick (scanning the entire rest of the heap for pointers to update wouldn't scale up as well). > data and adjusting pointers) on part of the old gen. ... -- ramki From john.cuthbertson at oracle.com Thu Jan 27 02:33:59 2011 From: john.cuthbertson at oracle.com (john.cuthbertson at oracle.com) Date: Thu, 27 Jan 2011 02:33:59 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 2 new changesets Message-ID: <20110127023402.C029947195@hg.openjdk.java.net> Changeset: 234761c55641 Author: johnc Date: 2011-01-25 10:56 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/234761c55641 6608385: G1: need to support parallel reference processing Summary: Implement support for ParallelRefProcEnabled in the reference processing that takes place at the end of G1 concurrent marking. Reviewed-by: tonyp, ysr ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/runtime/arguments.cpp Changeset: 81668b1f4877 Author: johnc Date: 2011-01-26 09:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/81668b1f4877 Merge ! src/share/vm/gc_implementation/g1/concurrentMark.cpp From todd at cloudera.com Sat Jan 22 00:51:42 2011 From: todd at cloudera.com (Todd Lipcon) Date: Fri, 21 Jan 2011 16:51:42 -0800 Subject: G1GC Full GCs In-Reply-To: References: <4C3CB3E9.4040305@oracle.com> Message-ID: A bit more data. I did the following patch: @@ -1560,6 +1575,19 @@ _non_young_other_cost_per_region_ms_seq->add(non_young_other_time_ms / (double) _recorded_non_young_regions); + } else { + // no non-young gen collections - if our prediction is high enough, we would + // never collect non-young again, so push it back towards zero so we give it + // another try. + double predicted_other_time = predict_non_young_other_time_ms(1); + if (predicted_other_time > MaxGCPauseMillis/2.0) { + if (G1PolicyVerbose > 0) { + gclog_or_tty->print_cr( + "Predicted non-young other time %.1f is too large compared to max pause time. Weighting down.", + predicted_other_time); + } + _non_young_other_cost_per_region_ms_seq->add(0.0); + } } and this mostly solved the problem described above. Now I get a full GC every 45-50 minutes which is way improved from what it was before. I still seem to be putting off GC of non-young regions too much though. I did some analysis of the G1 log and made these graphs: http://people.apache.org/~todd/hbase-fragmentation/g1-graphing.png The top graph is a heat map of the number of young (pink color) and non-young (blue) in each collection. The middle graph is the post-collection heap usage over time in MB The bottom graph is a heat map and smoothed line graph of the number of millis spent per collection. The target in this case is 50ms. A few interesting things: - not sure what causes the sort of periodic striated pattern in the number of young generation regions chosen - most of the time no old gen regions are selected for collection at all! Here's a graph of just old regions: http://people.apache.org/~todd/hbase-fragmentation/old-regions.png - When old regions are actually selected for collection the heap usage does drop, though elapsed time does spike over the guarantee. So seems like something about the heuristics aren't quite right. Thoughts? -Todd On Fri, Jan 21, 2011 at 11:38 AM, Todd Lipcon wrote: > Hey folks, > > Took some time over the last day or two to follow up on this on the latest > checkout of JDK7. I added some more instrumentation and my findings so far > are: > > 1) CMS is definitely hitting a fragmentation problem. Our workload is > pretty much guaranteed to fragment, and I don't think there's anything CMS > can do about it - see the following graphs: > http://people.apache.org/~todd/hbase-fragmentation/ > > 2) G1GC is hitting > full pauses because the "other" pause time predictions end up higher than > the minimum pause length. I'm seeing the following sequence: > > - A single choose_cset operation for a non_young region takes a long time > (unclear yet why this is happening, see below) > - This inflates the predict_non_young_other_time_ms(1) result to a value > greater than my pause goal > - From then on, it doesn't collect any more non-young regions (ever!) > because any region will be considered expensive regardless of the estimated > rset or collection costs > - The heap slowly fills up with non-young regions until we reach a full GC > > 3) So the question is why the choose_cset is taking a long time. I added > getrusage() calls to wrap the choose_cset operation. Here's some output with > extra logging: > > --> About to choose cset at 725.458 > Adding 1 young regions to the CSet > Added 0x0000000000000001 Young Regions to CS. > (3596288 KB left in heap.) > (picked region; 9.948053ms predicted; 21.164738ms remaining; 2448kb > marked; 2448kb maxlive; 59-59% liveness) > (3593839 KB left in heap.) > predict_region_elapsed_time_ms: 10.493828ms total, 5.486072ms rs scan > (14528 cnum), 4.828102 copy time (2333800 bytes), 0.179654 other time > (picked region; 10.493828ms predicted; 11.216685ms remaining; 2279kb > marked; 2279kb maxlive; 55-55% liveness) > predict_region_elapsed_time_ms: 10.493828ms total, 5.486072ms rs scan > (14528 cnum), 4.828102 copy time (2333800 bytes), 0.179654 other time > (3591560 KB left in heap.) > predict_region_elapsed_time_ms: 10.346346ms total, 5.119780ms rs scan > (13558 cnum), 5.046912 copy time (2439568 bytes), 0.179654 other time > predict_region_elapsed_time_ms: 10.407672ms total, 5.333135ms rs scan > (14123 cnum), 4.894882 copy time (2366080 bytes), 0.179654 other time > (no more marked regions; next region too expensive (adaptive; predicted > 10.407672ms > remaining 0.722857ms)) > Resource usage of choose_cset:majflt: 0 nswap: 0 nvcsw: 6 nivcsw: 0 > --> About to prepare RS scan at 725.657 > > The resource usage line with nvcsw=6 indicates there were 6 voluntary > context switches while choosing cset. This choose_cset operation took > 198.9ms all in choosing non-young. > > So, why are there voluntary context switches while choosing cset? This > isn't swapping -- that should show under majflt, right? My only theories > are: > - are any locks acquired in choose_cset? > - maybe the gc logging itself is blocking on IO to the log file? ie the > instrumentation itself is interfering with the algorithm? > > > Regardless, I think a single length choose_non_young_cset operation > shouldn't be allowed to push the prediction above the time boundary and > trigger this issue. Perhaps a simple workaround is that, whenever a > collection chooses no non_young regions, it should contribute a value of 0 > to the average? > > I'll give this heuristic a try on my build and see if it solves the issue. > > -Todd > > On Tue, Jul 27, 2010 at 3:08 PM, Todd Lipcon wrote: > >> Hi all, >> >> Back from my vacation and took some time yesterday and today to build a >> fresh JDK 7 with some additional debug printouts from Peter's patch. >> >> What I found was a bit different - the rset scanning estimates are low, >> but I consistently am seeing "Other time" estimates in the >40ms range. >> Given my pause time goal of 20ms, these estimates are I think excluding most >> of the regions from collectability. I haven't been able to dig around yet to >> figure out where the long estimate for "other time" is coming from - in the >> collections logged it sometimes shows fairly high "Other" but the "Choose >> CSet" component is very short. I'll try to add some more debug info to the >> verbose logging and rerun some tests over the next couple of days. >> >> At the moment I'm giving the JRockit VM a try to see how its deterministic >> GC stacks up against G1 and CMS. >> >> Thanks >> -Todd >> >> >> On Tue, Jul 13, 2010 at 5:15 PM, Peter Schuller < >> peter.schuller at infidyne.com> wrote: >> >>> Ramki/Tony, >>> >>> > Any chance of setting +PrintHeapAtGC and -XX:+PrintHeapAtGCExtended and >>> > sending us the log, or part of it (say between two Full GCs)? Be >>> prepared: >>> > this will generate piles of output. But it will give us per-region >>> > information that might shed more light on the cause of the issue.... >>> thanks, >>> >>> So what I have in terms of data is (see footnotes for urls references in >>> []): >>> >>> (a) A patch[1] that prints some additional information about estimated >>> costs of region eviction, and disables the GC efficiency check that >>> normally terminates selection of regions. (Note: This is a throw-away >>> patch for debugging; it's not intended as a suggested change for >>> inclusion.) >>> >>> (b) A log[2] showing the output of a test run I did just now, with >>> both your flags above and my patch enabled (but without disabling the >>> efficiency check). It shows fallback to full GC when the actual live >>> set size is 252 MB, and the maximum heap size is 2 GB (in other words, >>> ~ 12% liveness). An easy way to find the point of full gc is to search >>> for the string 'full 1'. >>> >>> (c) A file[3] with the effective VM options during the test. >>> >>> (d) Instructions for how to run the test to reproduce it (I'll get to >>> that at the end; it's simplified relative to previously). >>> >>> (e) Nature of the test. >>> >>> Discussion: >>> >>> WIth respect to region information: I originally tried it in response >>> to your recommendation earlier, but I found I did not see the >>> information I was after. Perhaps I was just misreading it, but I >>> mostly just saw either 0% or 100% fullness, and never the actual >>> liveness estimate as produced by the mark phase. In the log I am >>> referring to in this E-Mail, you can see that the last printout of >>> region information just before the live GC fits this pattern; I just >>> don't see anything that looks like legitimate liveness information >>> being printed. (I don't have time to dig back into it right now to >>> double-check what it's printing.) >>> >>> If you scroll up from the point of the full gc until you find a bunch >>> of output starting with "predict_region_elapsed_time_ms" you see some >>> output resulting from the patch, with pretty extreme values such as: >>> >>> predict_region_elapsed_time_ms: 34.378642ms total, 34.021154ms rs scan >>> (46542 cnum), 0.040069 copy time (20704 bytes), 0.317419 other time >>> predict_region_elapsed_time_ms: 45.020866ms total, 44.653222ms rs scan >>> (61087 cnum), 0.050225 copy time (25952 bytes), 0.317419 other time >>> predict_region_elapsed_time_ms: 16.250033ms total, 15.887065ms rs scan >>> (21734 cnum), 0.045550 copy time (23536 bytes), 0.317419 other time >>> predict_region_elapsed_time_ms: 226.942877ms total, 226.559163ms rs >>> scan (309940 cnum), 0.066296 copy time (34256 bytes), 0.317419 other >>> time >>> predict_region_elapsed_time_ms: 542.344828ms total, 541.954750ms rs >>> scan (741411 cnum), 0.072659 copy time (37544 bytes), 0.317419 other >>> time >>> predict_region_elapsed_time_ms: 668.595597ms total, 668.220877ms rs >>> scan (914147 cnum), 0.057301 copy time (29608 bytes), 0.317419 other >>> time >>> >>> So in the most extreme case in the excerpt above, that's > half a >>> second of estimate rset scanning time for a single region with 914147 >>> cards to be scanned. While not all are that extreme, lots and lots of >>> regions are very expensive and almost only due to rset scanning costs. >>> >>> If you scroll down a bit to the first (and ONLY) partial that happened >>> after the statistics accumulating from the marking phase, we see more >>> output resulting form the patch. At the end, we see: >>> >>> (picked region; 0.345890ms predicted; 1.317244ms remaining; 15kb >>> marked; 15kb maxlive; 1-1% liveness) >>> (393380 KB left in heap.) >>> (picked region; 0.345963ms predicted; 0.971354ms remaining; 15kb >>> marked; 15kb maxlive; 1-1% liveness) >>> (393365 KB left in heap.) >>> (picked region; 0.346036ms predicted; 0.625391ms remaining; 15kb >>> marked; 15kb maxlive; 1-1% liveness) >>> (393349 KB left in heap.) >>> (no more marked regions; next region too expensive (adaptive; >>> predicted 0.346036ms > remaining 0.279355ms)) >>> >>> So in other words, it picked a bunch of regions in order of "lowest >>> hanging fruit". The *least* low hanging fruit picked still had >>> liveness at 1%; in other words, there's plenty of further regions that >>> ideally should be collected because they contain almost no garbage >>> (ignoring the cost of collecting them). >>> >>> In this case, it stopped picking regions because the next region to be >>> picked, though cheap, was the straw that broke the camel's neck and we >>> simply exceeded the alloted time for this particular GC. >>> >>> However, after this partial completes, it reverts back to doing just >>> young gc:s. In other words, even though there's *plenty* of regions >>> with very low liveness, further partials aren't happening. >>> >>> By applying this part of the patch: >>> >>> - (adaptive_young_list_length() && >>> + (adaptive_young_list_length() && false && // scodetodo >>> >>> I artificially force g1 to not fall back to doing young gc:s for >>> efficiency reasons. When I run with that change, I don't experience >>> the slow perpetual growth until fallback to full GC. If I remember >>> correctly though, the rset scanning cost is in fact high, but I don't >>> have details saved and I'm afraid I don't have time to re-run those >>> tests right now and compare numbers. >>> >>> Reproducing it: >>> >>> I made some changes and the test case should now hopefully be easy to >>> run assuming you have maven installed. The github project is at: >>> >>> http://github.com/scode/httpgctest >>> >>> There is a README, but the shortest possible instructions to >>> re-produce the test that I did: >>> >>> git clone git://github.com/scode/httpgctest.git >>> cd httpgctest.git >>> git checkout 20100714_1 # grab from appropriate tag, in case I >>> change master >>> mvn package >>> HTTPGCTEST_LOGGC=gc.log ./run.sh >>> >>> That should start the http server; then run concurrently: >>> >>> while [ 1 ] ; do curl 'http://localhost:9191/dropdata?ratio=0.10' ; >>> curl 'http://localhost:9191/gendata?amount=25000' ; sleep 0.1 ; done >>> >>> And then just wait and observe. >>> >>> Nature of the test: >>> >>> So the test if run as above will essentially reach a steady state of >>> equilibrium with about 25000 pieces of data in a clojure immutable >>> map. The result is that a significant amount of new data is being >>> allocated, but very little writing to old regions is happening. The >>> garbage generated is very well spread out over the entire heap because >>> it goes through all objects and drops 10% (the ratio=0.10) for each >>> iteration, after which it adds 25000 new items. >>> >>> In other words; not a lot of old gen writing, but lots of writes to >>> the young gen referencing objects in the old gen. >>> >>> [1] http://distfiles.scode.org/mlref/g1/g1_region_live_stats_hack.patch >>> [2] >>> http://distfiles.scode.org/mlref/gctest/httpgctest-g1-fullgc-20100714/gc-fullfallback.log >>> [3] >>> http://distfiles.scode.org/mlref/gctest/httpgctest-g1-fullgc-20100714/vmoptions.txt >>> >>> -- >>> / Peter Schuller >>> >> >> >> >> -- >> Todd Lipcon >> Software Engineer, Cloudera >> > > > > -- > Todd Lipcon > Software Engineer, Cloudera > -- Todd Lipcon Software Engineer, Cloudera -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From bengt.rutisson at Oracle.Com Thu Jan 27 12:00:23 2011 From: bengt.rutisson at Oracle.Com (Bengt Rutisson) Date: Thu, 27 Jan 2011 13:00:23 +0100 Subject: Review Request (s) - 7015169 GC Cause not always set Message-ID: <4D415E57.1080902@oracle.com> Hi Everybody, Following up on a mail discussion called "jstat LGCC column shows" on this mailing list. Yasumasa Suenaga has agreed to contribute the patch that he made to the OpenJDK project. I am helping him to get it pushed into the OpenJDK repositories. We created bug 7015169 for this issue. It is not available on http://bugs.sun.com yet, but I hope it gets published there soon. To push we need a couple of reviews. Here is the webrev: http://cr.openjdk.java.net/~brutisso/7015169/webrev.00/ The problem was that _gc_cause was not set by all VM_GC_Operation that can request a GC. This was visible through jstat and with Yasumasa's fix the LGCC columns shows the correct GC cause. Thanks, Bengt From linuxhippy at gmail.com Thu Jan 27 13:39:15 2011 From: linuxhippy at gmail.com (Clemens Eisserer) Date: Thu, 27 Jan 2011 14:39:15 +0100 Subject: Integration of ParralellGC and CMS In-Reply-To: <4D407E5D.2020909@oracle.com> References: <4D407E5D.2020909@oracle.com> Message-ID: Hi Jon, > Generally CMS fights fragmentation by a STW compaction. ?Doing a MT version > of that would be the integration of ParallelOldGC into CMS which was your > first > question. ?But perhaps that's not what you meant. Right, as you suggested what I ment was multithreaded, incremental stw compaction. I think the integration of ParallelOldGC into CMS would be a too complex task for me, after all the whole gc code is completly new to me. > A complete > marking of the live data would be needed for the increment of the > compaction. ?But you'd only need to do the actual compaction (moving > data and adjusting pointers) on part of the old gen. If the stw compaction phase would be executed after a "normal" CMS run, couldn't the marking results of the concurrent marking phase be used? All created objects since then could be simply treated as alive. Probably moving all objects (live or dead) would be an option too, but of course would mean more work and worse compaction. >?Look at the > serial old gen collector if you're interested in this. ?The ParallelOldGC > will be somewhat more complicated. ?We're not particularly > interested in it because that's what G1 does. Hmm, if it would work well and the code would be clean, small and maintainable - would there be a chance for integration? I asked here, because it would be great if the stuff i produce during working on a master thesis could be useful ;) Thanks, Clemens From jon.masamitsu at oracle.com Thu Jan 27 16:19:13 2011 From: jon.masamitsu at oracle.com (Jon Masamitsu) Date: Thu, 27 Jan 2011 08:19:13 -0800 Subject: Integration of ParralellGC and CMS In-Reply-To: References: <4D407E5D.2020909@oracle.com> Message-ID: <4D419B01.6060006@oracle.com> On 1/27/2011 5:39 AM, Clemens Eisserer wrote: > ... >> A complete >> marking of the live data would be needed for the increment of the >> compaction. But you'd only need to do the actual compaction (moving >> data and adjusting pointers) on part of the old gen. > If the stw compaction phase would be executed after a "normal" CMS > run, couldn't the marking results of the concurrent marking phase be > used? All created objects since then could be simply treated as alive. > Probably moving all objects (live or dead) would be an option too, but > of course would mean more work and worse compaction. > I would not want to depend on the marking from a CMS concurrent collection. I think the first place I would use an incremental compaction is when a concurrent mode failure had occurred and try an incremental compaction instead of a full compaction. Eventually doing an incremental compaction in anticipation of a concurrent mode failure would be desirable but I'm not sure we have the metrics to figure that out reliably. Even an incremental compaction is going to hurt so start by doing it only when you have to. >> Look at the >> serial old gen collector if you're interested in this. The ParallelOldGC >> will be somewhat more complicated. We're not particularly >> interested in it because that's what G1 does. > Hmm, if it would work well and the code would be clean, small and > maintainable - would there be a chance for integration? > I asked here, because it would be great if the stuff i produce during > working on a master thesis could be useful ;) I don't know the answer to that question. It would seem silly for us not to accept but this is a zero sum game. The effort to productize such a project would have to take effort away from something and I think that something else would be G1. Jon From tony.printezis at oracle.com Thu Jan 27 16:55:26 2011 From: tony.printezis at oracle.com (Tony Printezis) Date: Thu, 27 Jan 2011 11:55:26 -0500 Subject: Integration of ParralellGC and CMS In-Reply-To: References: <4D407E5D.2020909@oracle.com> Message-ID: <4D41A37E.2000407@oracle.com> Clemens, Clemens Eisserer wrote: > If the stw compaction phase would be executed after a "normal" CMS > run, couldn't the marking results of the concurrent marking phase be > used? All created objects since then could be simply treated as alive. > Probably moving all objects (live or dead) would be an option too, but > of course would mean more work and worse compaction. > (If I understand your intent correctly and to expand a bit on what Jon said) Simply relying on the marking information to compact objects (i.e. move the live ones) is not sufficient. Finding which objects to move is one part of this. But the harder part is to make sure that you find all the references to the objects that are being moved and update them. If you want to move a subset of the marked objects, unless you somehow keep track of where the references into that subset are, you'd have to scan the entire heap to to the reference updating and this can take a very long time. If instead you want to perform a full parallel compaction at the end of the CMS marking cycle using the marking information that CMS obtained, then this stop-the-world Full GC pause could be shorter than what say ParallelOldGC does (given that it does need to do the marking phase). But it would be at the same order of magnitude as a ParallelOldGC Full GC, so not a huge improvement. Typically initial-mark / remark pauses in CMS are considerably shorter than Full GCs. Anyway, hope this helps, Tony >> Look at the >> serial old gen collector if you're interested in this. The ParallelOldGC >> will be somewhat more complicated. We're not particularly >> interested in it because that's what G1 does. >> > > Hmm, if it would work well and the code would be clean, small and > maintainable - would there be a chance for integration? > I asked here, because it would be great if the stuff i produce during > working on a master thesis could be useful ;) > > Thanks, Clemens > From y.s.ramakrishna at oracle.com Thu Jan 27 17:51:21 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Thu, 27 Jan 2011 09:51:21 -0800 Subject: Integration of ParralellGC and CMS In-Reply-To: <4D41A37E.2000407@oracle.com> References: <4D407E5D.2020909@oracle.com> <4D41A37E.2000407@oracle.com> Message-ID: <4D41B099.1050006@oracle.com> Right. I'd suggest following precedent in this regard in some earlier JVM's, and build up the remembered set for the space being defragmented as part of the marking and precleaning cycles, then rely on that information, along with the ModUnionTable to reduce the cost of identifying pointers needing to be updated when doing the actual compaction. Further, the defrag should be run on a periodic basis based upon fragmentation metrics collected at the most recent previous cycle. As someone commented earlier, however, the existence of G1 probably makes this CMS feature more of an academic/learning exercise with no immediately obvious advantages vis-a-vis G1, thus reducing greatly (IMHO) its chances of eventual productization (although a legacy CMS user-base might well be an argument in favour of doing something like this, but recall Jon's comment about opportunity cost at least in the product group here; but the OpenJDK community is much more than just the engineers that work at Oracle or other direct OpenJDK code committers). Regardless of all that, it might be a useful Master's project nonetheless, and who knows you might learn a new thing or two that we didn't know about (or had known and had forgotten about) CMS and incremental compaction, in the process. So my advice to Clemens is, make sure to look at the existing literature (you'll probably find a paper or two of past JVM's that may have had those incremental defrag capabilities, study them), then see what you can do in the context of HotSpot/CMS; go for it if you find it interesting, but don't let eventual or guaranteed productization of what you build be too important a factor in your choice of project :-) . $0.02. -- ramki On 01/27/11 08:55, Tony Printezis wrote: > Clemens, > > Clemens Eisserer wrote: >> If the stw compaction phase would be executed after a "normal" CMS >> run, couldn't the marking results of the concurrent marking phase be >> used? All created objects since then could be simply treated as alive. >> Probably moving all objects (live or dead) would be an option too, but >> of course would mean more work and worse compaction. >> > > (If I understand your intent correctly and to expand a bit on what Jon > said) Simply relying on the marking information to compact objects (i.e. > move the live ones) is not sufficient. Finding which objects to move is > one part of this. But the harder part is to make sure that you find all > the references to the objects that are being moved and update them. If > you want to move a subset of the marked objects, unless you somehow keep > track of where the references into that subset are, you'd have to scan > the entire heap to to the reference updating and this can take a very > long time. If instead you want to perform a full parallel compaction at > the end of the CMS marking cycle using the marking information that CMS > obtained, then this stop-the-world Full GC pause could be shorter than > what say ParallelOldGC does (given that it does need to do the marking > phase). But it would be at the same order of magnitude as a > ParallelOldGC Full GC, so not a huge improvement. Typically initial-mark > / remark pauses in CMS are considerably shorter than Full GCs. > > Anyway, hope this helps, > > Tony > >>> Look at the >>> serial old gen collector if you're interested in this. The >>> ParallelOldGC >>> will be somewhat more complicated. We're not particularly >>> interested in it because that's what G1 does. >>> >> >> Hmm, if it would work well and the code would be clean, small and >> maintainable - would there be a chance for integration? >> I asked here, because it would be great if the stuff i produce during >> working on a master thesis could be useful ;) >> >> Thanks, Clemens >> From vladimir.kozlov at oracle.com Thu Jan 27 22:18:05 2011 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Jan 2011 14:18:05 -0800 Subject: Request for reviews (S): 7014874: Incorrect COOPs modes on solaris-{sparcv9, amd64} with ParallelGC Message-ID: <4D41EF1D.502@oracle.com> http://cr.openjdk.java.net/~kvn/7014874/webrev Fixed 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with ParallelGC scale_by_NewRatio_aligned() aligns boundary between old and young gens to min_alignment() (64K). But code in ParallelScavengeHeap::initialize() aligns up both old and young gen sizes to large page size. As result total heap size could be increased by one large page and cross 4gb boundary preventing usage of 32-bit COOPs. Align old gen size down to keep specified heap size but not less than its old gen min size. From y.s.ramakrishna at oracle.com Thu Jan 27 22:36:50 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Thu, 27 Jan 2011 14:36:50 -0800 Subject: Request for reviews (S): 7014874: Incorrect COOPs modes on solaris-{sparcv9, amd64} with ParallelGC In-Reply-To: <4D41EF1D.502@oracle.com> References: <4D41EF1D.502@oracle.com> Message-ID: <4D41F382.8060006@oracle.com> I don't understand the logic of the patch. Or rather, i do, but i question if it is complete: why didn't you also align the max size of YG and PG down in like manner? I think you should or you would be open to the same issues, no? In fact, it seems as though, as a matter of uniform policy, all min's should align upwards and all max's align downwards wherever (page-)alignment is sought. -- ramki On 01/27/11 14:18, Vladimir Kozlov wrote: > http://cr.openjdk.java.net/~kvn/7014874/webrev > > Fixed 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with > ParallelGC > > scale_by_NewRatio_aligned() aligns boundary between old > and young gens to min_alignment() (64K). But code in > ParallelScavengeHeap::initialize() aligns up both old and > young gen sizes to large page size. > As result total heap size could be increased by one large > page and cross 4gb boundary preventing usage of 32-bit COOPs. > > Align old gen size down to keep specified heap size but > not less than its old gen min size. From vladimir.kozlov at oracle.com Thu Jan 27 22:49:34 2011 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Jan 2011 14:49:34 -0800 Subject: Request for reviews (S): 7014874: Incorrect COOPs modes on solaris-{sparcv9, amd64} with ParallelGC In-Reply-To: <4D41F382.8060006@oracle.com> References: <4D41EF1D.502@oracle.com> <4D41F382.8060006@oracle.com> Message-ID: <4D41F67E.9060006@oracle.com> Before rounding YG+OG == total heap size. To keep the same total size I need to round one size up and the other down. I still may not preserver the same total size if it is not rounded to the same or large alignment. But it is fine. I already fixed PG rounding before in 6984368 changes: src/share/vm/memory/collectorPolicy.cpp Tue Sep 14 17:19:35 2010 -0700 @@ -32,7 +32,11 @@ MaxPermSize = PermSize; } PermSize = MAX2(min_alignment(), align_size_down_(PermSize, min_alignment())); - MaxPermSize = align_size_up(MaxPermSize, max_alignment()); + // Don't increase Perm size limit above specified. + MaxPermSize = align_size_down(MaxPermSize, max_alignment()); + if (PermSize > MaxPermSize) { + PermSize = MaxPermSize; + } Vladimir Y. S. Ramakrishna wrote: > I don't understand the logic of the patch. Or rather, i do, > but i question if it is complete: why didn't you also align > the max size of YG and PG down in like manner? I think you > should or you would be open to the same issues, no? > > In fact, it seems as though, as a matter of uniform policy, all min's > should align upwards and all max's align downwards wherever > (page-)alignment > is sought. > > -- ramki > > > On 01/27/11 14:18, Vladimir Kozlov wrote: >> http://cr.openjdk.java.net/~kvn/7014874/webrev >> >> Fixed 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with >> ParallelGC >> >> scale_by_NewRatio_aligned() aligns boundary between old >> and young gens to min_alignment() (64K). But code in >> ParallelScavengeHeap::initialize() aligns up both old and >> young gen sizes to large page size. >> As result total heap size could be increased by one large >> page and cross 4gb boundary preventing usage of 32-bit COOPs. >> >> Align old gen size down to keep specified heap size but >> not less than its old gen min size. From y.s.ramakrishna at oracle.com Thu Jan 27 22:59:23 2011 From: y.s.ramakrishna at oracle.com (Y. S. Ramakrishna) Date: Thu, 27 Jan 2011 14:59:23 -0800 Subject: Request for reviews (S): 7014874: Incorrect COOPs modes on solaris-{sparcv9, amd64} with ParallelGC In-Reply-To: <4D41F67E.9060006@oracle.com> References: <4D41EF1D.502@oracle.com> <4D41F382.8060006@oracle.com> <4D41F67E.9060006@oracle.com> Message-ID: <4D41F8CB.5080107@oracle.com> May be you need a "partition_aligned()" method that takes an aligned whole and produces aligned partitions thereof given a desired_partitioning request. It would seem as though similar logic would need to apply to other kinds of heaps... or do they do the right thing already? OK, i suppose i should go look, since i am supposed to be reviewing, not interviewing ;-) -- ramki On 01/27/11 14:49, Vladimir Kozlov wrote: > Before rounding YG+OG == total heap size. To keep the same > total size I need to round one size up and the other down. > I still may not preserver the same total size if it is not > rounded to the same or large alignment. But it is fine. > > I already fixed PG rounding before in 6984368 changes: > > src/share/vm/memory/collectorPolicy.cpp Tue Sep 14 17:19:35 2010 -0700 > @@ -32,7 +32,11 @@ > MaxPermSize = PermSize; > } > PermSize = MAX2(min_alignment(), align_size_down_(PermSize, > min_alignment())); > - MaxPermSize = align_size_up(MaxPermSize, max_alignment()); > + // Don't increase Perm size limit above specified. > + MaxPermSize = align_size_down(MaxPermSize, max_alignment()); > + if (PermSize > MaxPermSize) { > + PermSize = MaxPermSize; > + } > > Vladimir > > Y. S. Ramakrishna wrote: >> I don't understand the logic of the patch. Or rather, i do, >> but i question if it is complete: why didn't you also align >> the max size of YG and PG down in like manner? I think you >> should or you would be open to the same issues, no? >> >> In fact, it seems as though, as a matter of uniform policy, all min's >> should align upwards and all max's align downwards wherever >> (page-)alignment >> is sought. >> >> -- ramki >> >> >> On 01/27/11 14:18, Vladimir Kozlov wrote: >>> http://cr.openjdk.java.net/~kvn/7014874/webrev >>> >>> Fixed 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with >>> ParallelGC >>> >>> scale_by_NewRatio_aligned() aligns boundary between old >>> and young gens to min_alignment() (64K). But code in >>> ParallelScavengeHeap::initialize() aligns up both old and >>> young gen sizes to large page size. >>> As result total heap size could be increased by one large >>> page and cross 4gb boundary preventing usage of 32-bit COOPs. >>> >>> Align old gen size down to keep specified heap size but >>> not less than its old gen min size. From vladimir.kozlov at oracle.com Thu Jan 27 23:10:04 2011 From: vladimir.kozlov at oracle.com (Vladimir Kozlov) Date: Thu, 27 Jan 2011 15:10:04 -0800 Subject: Request for reviews (S): 7014874: Incorrect COOPs modes on solaris-{sparcv9, amd64} with ParallelGC In-Reply-To: <4D41F8CB.5080107@oracle.com> References: <4D41EF1D.502@oracle.com> <4D41F382.8060006@oracle.com> <4D41F67E.9060006@oracle.com> <4D41F8CB.5080107@oracle.com> Message-ID: <4D41FB4C.2040304@oracle.com> As Igor explained me only Parallel GC requires boundary page size alignment due to UseAdaptiveGCBoundary feature. Vladimir Y. S. Ramakrishna wrote: > May be you need a "partition_aligned()" method that > takes an aligned whole and produces aligned partitions > thereof given a desired_partitioning request. It would > seem as though similar logic would need to apply to > other kinds of heaps... or do they do the right thing > already? OK, i suppose i should go look, since i am > supposed to be reviewing, not interviewing ;-) > > -- ramki > > On 01/27/11 14:49, Vladimir Kozlov wrote: >> Before rounding YG+OG == total heap size. To keep the same >> total size I need to round one size up and the other down. >> I still may not preserver the same total size if it is not >> rounded to the same or large alignment. But it is fine. >> >> I already fixed PG rounding before in 6984368 changes: >> >> src/share/vm/memory/collectorPolicy.cpp Tue Sep 14 17:19:35 2010 -0700 >> @@ -32,7 +32,11 @@ >> MaxPermSize = PermSize; >> } >> PermSize = MAX2(min_alignment(), align_size_down_(PermSize, >> min_alignment())); >> - MaxPermSize = align_size_up(MaxPermSize, max_alignment()); >> + // Don't increase Perm size limit above specified. >> + MaxPermSize = align_size_down(MaxPermSize, max_alignment()); >> + if (PermSize > MaxPermSize) { >> + PermSize = MaxPermSize; >> + } >> >> Vladimir >> >> Y. S. Ramakrishna wrote: >>> I don't understand the logic of the patch. Or rather, i do, >>> but i question if it is complete: why didn't you also align >>> the max size of YG and PG down in like manner? I think you >>> should or you would be open to the same issues, no? >>> >>> In fact, it seems as though, as a matter of uniform policy, all min's >>> should align upwards and all max's align downwards wherever >>> (page-)alignment >>> is sought. >>> >>> -- ramki >>> >>> >>> On 01/27/11 14:18, Vladimir Kozlov wrote: >>>> http://cr.openjdk.java.net/~kvn/7014874/webrev >>>> >>>> Fixed 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with >>>> ParallelGC >>>> >>>> scale_by_NewRatio_aligned() aligns boundary between old >>>> and young gens to min_alignment() (64K). But code in >>>> ParallelScavengeHeap::initialize() aligns up both old and >>>> young gen sizes to large page size. >>>> As result total heap size could be increased by one large >>>> page and cross 4gb boundary preventing usage of 32-bit COOPs. >>>> >>>> Align old gen size down to keep specified heap size but >>>> not less than its old gen min size. From john.coomes at oracle.com Fri Jan 28 04:58:31 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 28 Jan 2011 04:58:31 +0000 Subject: hg: jdk7/hotspot-gc: Added tag jdk7-b127 for changeset bd70f76b0309 Message-ID: <20110128045831.29FF8471FD@hg.openjdk.java.net> Changeset: 6e0f4d6099bb Author: cl Date: 2011-01-27 17:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/6e0f4d6099bb Added tag jdk7-b127 for changeset bd70f76b0309 ! .hgtags From john.coomes at oracle.com Fri Jan 28 04:58:38 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 28 Jan 2011 04:58:38 +0000 Subject: hg: jdk7/hotspot-gc/corba: Added tag jdk7-b127 for changeset 64775e83f4df Message-ID: <20110128045841.CB9F7471FE@hg.openjdk.java.net> Changeset: 9baa8f94a11d Author: cl Date: 2011-01-27 17:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/9baa8f94a11d Added tag jdk7-b127 for changeset 64775e83f4df ! .hgtags From john.coomes at oracle.com Fri Jan 28 04:58:48 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 28 Jan 2011 04:58:48 +0000 Subject: hg: jdk7/hotspot-gc/jaxp: Added tag jdk7-b127 for changeset c532d6dbc8d1 Message-ID: <20110128045848.95589471FF@hg.openjdk.java.net> Changeset: a42c6132c746 Author: cl Date: 2011-01-27 17:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/a42c6132c746 Added tag jdk7-b127 for changeset c532d6dbc8d1 ! .hgtags From john.coomes at oracle.com Fri Jan 28 04:58:55 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 28 Jan 2011 04:58:55 +0000 Subject: hg: jdk7/hotspot-gc/jaxws: Added tag jdk7-b127 for changeset ef19f173578c Message-ID: <20110128045855.39E6647200@hg.openjdk.java.net> Changeset: 88d74afc5593 Author: cl Date: 2011-01-27 17:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/88d74afc5593 Added tag jdk7-b127 for changeset ef19f173578c ! .hgtags From john.coomes at oracle.com Fri Jan 28 04:59:04 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 28 Jan 2011 04:59:04 +0000 Subject: hg: jdk7/hotspot-gc/jdk: Added tag jdk7-b127 for changeset 29e09de1d0b4 Message-ID: <20110128045954.2D88C47201@hg.openjdk.java.net> Changeset: 66c86ca4079a Author: cl Date: 2011-01-27 17:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/66c86ca4079a Added tag jdk7-b127 for changeset 29e09de1d0b4 ! .hgtags From john.coomes at oracle.com Fri Jan 28 05:00:07 2011 From: john.coomes at oracle.com (john.coomes at oracle.com) Date: Fri, 28 Jan 2011 05:00:07 +0000 Subject: hg: jdk7/hotspot-gc/langtools: 15 new changesets Message-ID: <20110128050040.E9FB247202@hg.openjdk.java.net> Changeset: 62bdb6767734 Author: cl Date: 2011-01-13 16:44 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/62bdb6767734 Added tag jdk7-b125 for changeset 4b0560c72b52 ! .hgtags Changeset: a8d3eed8e247 Author: jjh Date: 2010-12-13 17:35 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/a8d3eed8e247 6999460: Glassfish build with JDK 6 / 7 is 5x-10x slower on Windows than on Linux Summary: Fixed JavacFileManager to not treat a non-existant pathname as a directory. Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/Paths.java Changeset: 0141f508b98d Author: jjg Date: 2010-12-14 14:17 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/0141f508b98d 6999891: DefaultFileManager incorrect Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java + test/tools/javac/processing/filer/TestValidRelativeNames.java Changeset: cff0b8694633 Author: jjg Date: 2010-12-15 06:39 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/cff0b8694633 7006564: NPE in javac running test/tools/javac/nio/compileTest/CompileTest.java Reviewed-by: mcimadamore, alanb ! src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java ! test/tools/javac/nio/compileTest/CompileTest.java Changeset: 3131e664558d Author: ksrini Date: 2010-12-18 09:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/3131e664558d 6567415: Neverending loop in ClassReader Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java + test/tools/javac/6567415/T6567415.java Changeset: 7c33098600b2 Author: jjh Date: 2010-12-21 16:29 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/7c33098600b2 7008378: javac bootstrap launcher fails on cygwin when called via an absolute path Summary: Use cygpath if it is cygwin Reviewed-by: ksrini ! make/Makefile ! make/build.xml ! src/share/bin/launcher.sh-template Changeset: 8859e49909e6 Author: lana Date: 2010-12-22 23:15 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/8859e49909e6 Merge Changeset: dd38bab326a3 Author: jjh Date: 2010-12-23 10:08 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/dd38bab326a3 7008869: Debug printlns accidentally added to make/build.xml Summary: Delete bogus echo statements Reviewed-by: ksrini ! make/build.xml Changeset: e8719f95f2d0 Author: jjh Date: 2010-12-23 12:29 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/e8719f95f2d0 6982992: Tests CheckAttributedTree.java, JavacTreeScannerTest.java, and SourceTreeeScannerTest.java timeout Summary: Hoist some invariant code out of a loop Reviewed-by: ksrini ! test/tools/javac/failover/CheckAttributedTree.java ! test/tools/javac/tree/AbstractTreeScannerTest.java ! test/tools/javac/tree/TreePosTest.java Changeset: e63b1f8341ce Author: lana Date: 2011-01-04 17:10 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/e63b1f8341ce Merge ! make/Makefile ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java ! test/tools/javac/nio/compileTest/CompileTest.java Changeset: 15484cb7e5ae Author: mcimadamore Date: 2011-01-05 09:59 +0000 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/15484cb7e5ae 7010194: several langtools regression failures after JSR 292 changes (b123) Summary: Some regression tests rely on unsupported JSR 292 features Reviewed-by: jjg ! test/tools/javac/diags/examples/TypeParameterOnPolymorphicSignature.java - test/tools/javac/meth/InvokeDyn.java - test/tools/javac/meth/InvokeDynTrans.java ! test/tools/javac/meth/XlintWarn.java Changeset: 20fec1b88bc1 Author: lana Date: 2011-01-13 15:05 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/20fec1b88bc1 Merge - test/tools/javac/meth/InvokeDyn.java - test/tools/javac/meth/InvokeDynTrans.java Changeset: 438a8ad60f7a Author: lana Date: 2011-01-14 13:48 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/438a8ad60f7a Merge Changeset: 1e6094c33187 Author: cl Date: 2011-01-20 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/1e6094c33187 Added tag jdk7-b126 for changeset 438a8ad60f7a ! .hgtags Changeset: d79e283c7d9b Author: cl Date: 2011-01-27 17:28 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/langtools/rev/d79e283c7d9b Added tag jdk7-b127 for changeset 1e6094c33187 ! .hgtags From igor.veresov at oracle.com Fri Jan 28 06:37:42 2011 From: igor.veresov at oracle.com (Igor Veresov) Date: Thu, 27 Jan 2011 22:37:42 -0800 Subject: Review Request (s) - 7015169 GC Cause not always set In-Reply-To: <4D415E57.1080902@oracle.com> References: <4D415E57.1080902@oracle.com> Message-ID: <4D426436.3090500@oracle.com> Looks good. igor On 1/27/11 4:00 AM, Bengt Rutisson wrote: > > Hi Everybody, > > Following up on a mail discussion called "jstat LGCC column shows" on > this mailing list. Yasumasa Suenaga has agreed to contribute the patch > that he made to the OpenJDK project. I am helping him to get it pushed > into the OpenJDK repositories. > > We created bug 7015169 for this issue. It is not available on > http://bugs.sun.com yet, but I hope it gets published there soon. > > To push we need a couple of reviews. Here is the webrev: > http://cr.openjdk.java.net/~brutisso/7015169/webrev.00/ > > The problem was that _gc_cause was not set by all VM_GC_Operation that > can request a GC. This was visible through jstat and with Yasumasa's fix > the LGCC columns shows the correct GC cause. > > Thanks, > Bengt From daniel.daugherty at oracle.com Fri Jan 28 10:37:06 2011 From: daniel.daugherty at oracle.com (daniel.daugherty at oracle.com) Date: Fri, 28 Jan 2011 10:37:06 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 18 new changesets Message-ID: <20110128103752.2EBD647218@hg.openjdk.java.net> Changeset: 85330eaa15ee Author: iveresov Date: 2011-01-21 00:01 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/85330eaa15ee 7013812: C1: deopt blob too far from patching stub Summary: Use long jumps to get from patching stubs to deopt blob Reviewed-by: kvn, never ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Changeset: 102466e70deb Author: cl Date: 2011-01-20 15:52 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/102466e70deb Added tag jdk7-b126 for changeset 4c851c931d00 ! .hgtags Changeset: 5668ad215b80 Author: trims Date: 2011-01-20 17:53 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/5668ad215b80 Merge ! .hgtags Changeset: 98bf1c6bb73a Author: trims Date: 2011-01-20 18:24 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/98bf1c6bb73a Merge Changeset: d535bf4c1235 Author: trims Date: 2011-01-21 02:07 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d535bf4c1235 Merge Changeset: 6aa467001334 Author: trims Date: 2011-01-25 14:57 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/6aa467001334 Added tag hs20-b07 for changeset d535bf4c1235 ! .hgtags Changeset: d19d8218a399 Author: trims Date: 2011-01-25 15:06 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d19d8218a399 7014711: Fork HS20 to HS21 - renumber Major and build numbers of JVM Summary: Update the Major and Build numbers for HS21 Reviewed-by: jcoomes ! make/hotspot_version Changeset: ccfcb502af3f Author: dholmes Date: 2011-01-25 00:14 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/ccfcb502af3f 6566340: Restore use of stillborn flag to signify a thread that was stopped before it started Summary: Restore use of stillborn flag Reviewed-by: acorn, alanb ! src/share/vm/prims/jvm.cpp ! src/share/vm/runtime/thread.cpp Changeset: 515cc1a31fd1 Author: dcubed Date: 2011-01-26 21:26 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/515cc1a31fd1 Merge Changeset: bb2c2878f134 Author: twisti Date: 2011-01-20 08:25 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/bb2c2878f134 7011839: JSR 292 turn on escape analysis when using invokedynamic Summary: Currently escape analysis is turned off when EnableInvokeDynamic is true. Reviewed-by: jrose, kvn ! src/share/vm/ci/bcEscapeAnalyzer.cpp ! src/share/vm/runtime/arguments.cpp Changeset: a7367756024b Author: twisti Date: 2011-01-21 01:16 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/a7367756024b Merge ! src/share/vm/ci/bcEscapeAnalyzer.cpp - src/share/vm/gc_implementation/g1/concurrentZFThread.cpp - src/share/vm/gc_implementation/g1/concurrentZFThread.hpp Changeset: 403dc4c1d7f5 Author: never Date: 2011-01-21 13:01 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/403dc4c1d7f5 6809483: hotspot:::method_entry are not correctly generated for "method()V" Reviewed-by: iveresov, twisti ! src/share/vm/c1/c1_Canonicalizer.cpp ! src/share/vm/c1/c1_Canonicalizer.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_InstructionPrinter.cpp ! src/share/vm/c1/c1_InstructionPrinter.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/c1/c1_Optimizer.cpp ! src/share/vm/c1/c1_ValueMap.hpp Changeset: aa4b04b68652 Author: never Date: 2011-01-21 13:03 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/aa4b04b68652 Merge ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp Changeset: e4fee0bdaa85 Author: never Date: 2011-01-24 13:34 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e4fee0bdaa85 7008809: should report the class in ArrayStoreExceptions from compiled code Reviewed-by: iveresov, twisti ! src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/x86/vm/c1_CodeStubs_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/share/vm/c1/c1_CodeStubs.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_Runtime1.hpp Changeset: f966c66b5463 Author: iveresov Date: 2011-01-25 14:38 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/f966c66b5463 7014247: CTW fails when compile sun/misc/AtomicLongCSImpl (REMOVED from JDK7) Summary: Use lea to compute field address in AtomicLongCSImpl::attemptUpdate() intrinsic on x86. Reviewed-by: never, kvn ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Changeset: 635b068a7224 Author: twisti Date: 2011-01-27 08:47 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/635b068a7224 Merge ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp Changeset: 9846d99e16d3 Author: twisti Date: 2011-01-27 14:05 -0500 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/9846d99e16d3 Merge Changeset: 27e4ea99855d Author: johnc Date: 2011-01-27 13:42 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/27e4ea99855d Merge ! src/share/vm/runtime/arguments.cpp From tony.printezis at oracle.com Fri Jan 28 14:11:52 2011 From: tony.printezis at oracle.com (Tony Printezis) Date: Fri, 28 Jan 2011 09:11:52 -0500 Subject: Review Request (s) - 7015169 GC Cause not always set In-Reply-To: <4D415E57.1080902@oracle.com> References: <4D415E57.1080902@oracle.com> Message-ID: <4D42CEA8.804@oracle.com> Bengt, Can I suggest an alternative for the changes to the G1 VM operations? VM_G1OperationWithAllocRequest is a super class for VM_G1CollectForAllocation and VM_G1IncCollectionPause. Instead of setting _cause to GCCause::_allocation_failure in the VM_G1OperationWithAllocRequest constructor, why don't you add a cause parameter to that constructor, propagate the cause field from the VM_G1IncCollectionPause constructor and pass GCCause::_allocation_failure from the VM_G1CollectForAllocation constructor? I'd prefer to force the subclasses to pass a cause to the constructor instead of setting a default value for all of them. Tony On 1/27/2011 7:00 AM, Bengt Rutisson wrote: > > Hi Everybody, > > Following up on a mail discussion called "jstat LGCC column shows" on > this mailing list. Yasumasa Suenaga has agreed to contribute the patch > that he made to the OpenJDK project. I am helping him to get it pushed > into the OpenJDK repositories. > > We created bug 7015169 for this issue. It is not available on > http://bugs.sun.com yet, but I hope it gets published there soon. > > To push we need a couple of reviews. Here is the webrev: > http://cr.openjdk.java.net/~brutisso/7015169/webrev.00/ > > The problem was that _gc_cause was not set by all VM_GC_Operation that > can request a GC. This was visible through jstat and with Yasumasa's > fix the LGCC columns shows the correct GC cause. > > Thanks, > Bengt From y.s.ramakrishna at oracle.com Fri Jan 28 17:16:05 2011 From: y.s.ramakrishna at oracle.com (Y. Srinivas Ramakrishna) Date: Fri, 28 Jan 2011 09:16:05 -0800 Subject: Request for reviews (S): 7014874: Incorrect COOPs modes on solaris-{sparcv9, amd64} with ParallelGC In-Reply-To: <4D41FB4C.2040304@oracle.com> References: <4D41EF1D.502@oracle.com> <4D41F382.8060006@oracle.com> <4D41F67E.9060006@oracle.com> <4D41F8CB.5080107@oracle.com> <4D41FB4C.2040304@oracle.com> Message-ID: <4D42F9D5.6060003@oracle.com> Hi Vladimir -- On 1/27/2011 3:10 PM, Vladimir Kozlov wrote: > As Igor explained me only Parallel GC requires boundary > page size alignment due to UseAdaptiveGCBoundary feature. Hmm, I do see a lot of "align_size_up()" done on max_size specs in CollectedHeap::initialize_size_info() and friends, as well as in GenerationSpec::align(). I didn't follow the logic through to see if that will or will not affect the whole heap sizing behaviour wrt the issue reported in the CR. The bug report states the anomalous behaviour with ParallelScavenge heaps, Have you tested G1CollectedHeap and GenCollectedHeap to see if they do the right thing? thanks. -- ramki > > Vladimir > > Y. S. Ramakrishna wrote: >> May be you need a "partition_aligned()" method that >> takes an aligned whole and produces aligned partitions >> thereof given a desired_partitioning request. It would >> seem as though similar logic would need to apply to >> other kinds of heaps... or do they do the right thing >> already? OK, i suppose i should go look, since i am >> supposed to be reviewing, not interviewing ;-) >> >> -- ramki >> >> On 01/27/11 14:49, Vladimir Kozlov wrote: >>> Before rounding YG+OG == total heap size. To keep the same >>> total size I need to round one size up and the other down. >>> I still may not preserver the same total size if it is not >>> rounded to the same or large alignment. But it is fine. >>> >>> I already fixed PG rounding before in 6984368 changes: >>> >>> src/share/vm/memory/collectorPolicy.cpp Tue Sep 14 17:19:35 2010 -0700 >>> @@ -32,7 +32,11 @@ >>> MaxPermSize = PermSize; >>> } >>> PermSize = MAX2(min_alignment(), align_size_down_(PermSize, min_alignment())); >>> - MaxPermSize = align_size_up(MaxPermSize, max_alignment()); >>> + // Don't increase Perm size limit above specified. >>> + MaxPermSize = align_size_down(MaxPermSize, max_alignment()); >>> + if (PermSize > MaxPermSize) { >>> + PermSize = MaxPermSize; >>> + } >>> >>> Vladimir >>> >>> Y. S. Ramakrishna wrote: >>>> I don't understand the logic of the patch. Or rather, i do, >>>> but i question if it is complete: why didn't you also align >>>> the max size of YG and PG down in like manner? I think you >>>> should or you would be open to the same issues, no? >>>> >>>> In fact, it seems as though, as a matter of uniform policy, all min's >>>> should align upwards and all max's align downwards wherever (page-)alignment >>>> is sought. >>>> >>>> -- ramki >>>> >>>> >>>> On 01/27/11 14:18, Vladimir Kozlov wrote: >>>>> http://cr.openjdk.java.net/~kvn/7014874/webrev >>>>> >>>>> Fixed 7014874: Incorrect COOPs modes on solaris-{sparcv9,amd64} with ParallelGC >>>>> >>>>> scale_by_NewRatio_aligned() aligns boundary between old >>>>> and young gens to min_alignment() (64K). But code in >>>>> ParallelScavengeHeap::initialize() aligns up both old and >>>>> young gen sizes to large page size. >>>>> As result total heap size could be increased by one large >>>>> page and cross 4gb boundary preventing usage of 32-bit COOPs. >>>>> >>>>> Align old gen size down to keep specified heap size but >>>>> not less than its old gen min size. From y.s.ramakrishna at oracle.com Fri Jan 28 20:00:21 2011 From: y.s.ramakrishna at oracle.com (Y. Srinivas Ramakrishna) Date: Fri, 28 Jan 2011 12:00:21 -0800 Subject: Review Request (s) - 7015169 GC Cause not always set In-Reply-To: <4D415E57.1080902@oracle.com> References: <4D415E57.1080902@oracle.com> Message-ID: <4D432055.9080608@oracle.com> Hi Bengt -- This looks generally good to me, but i was wondering if we could somehow make this less "error-prone" in the following sense. There appears to be nothing that forces a gc op to actually set the _gc_cause value. We rely on each gc op c'tor to initialize the field, and for each doit() to use a GCCauseSetter to export the value into the heap when it runs. It would be nice if we could verify that each op had its _gc_cause field initialized in the c'tor, or at least before its doit() ran, and for one place to export the field rather than each subclass remembering to do it. For the former, the only thing i can think of off the top of my head is a hack: have the base class with that field initialize _gc_cause to "_no_cause" in its c'tor, and to check in its d'tor that the value has been changed to something different. We can't have the base class's c'tor check this because the subclass c'tors would not have run by then. For the latter, the only thing i could think of feels somewhat awkward too: have the VMThread check if an STW op is a GC op (we could introduce an attribute to check for this for any vm op), and do the GCCauseSetter thing in the VM thread before calling the doit() for each such op; may be the VMThread could at that time check that the cause field was not a "not set" value. Unfortunately, this kind of leaks these attributes and checks out of the vm op classes and so feels awkward. Perhaps someone might have better ideas on how that might be achieved. (Of course such a "clean-up" could happen separately rather than needing to be done in this changeset.) Other than those very high level comments, your changes look good to me otherwise wrt their specifics. I did not of course check that we got all the missing initializations which is one reason why i raised this issue as well as to ease future changes and new gc vm ops. -- ramki On 1/27/2011 4:00 AM, Bengt Rutisson wrote: > > Hi Everybody, > > Following up on a mail discussion called "jstat LGCC column shows" on this mailing list. Yasumasa > Suenaga has agreed to contribute the patch that he made to the OpenJDK project. I am helping him to > get it pushed into the OpenJDK repositories. > > We created bug 7015169 for this issue. It is not available on http://bugs.sun.com yet, but I hope it > gets published there soon. > > To push we need a couple of reviews. Here is the webrev: > http://cr.openjdk.java.net/~brutisso/7015169/webrev.00/ > > The problem was that _gc_cause was not set by all VM_GC_Operation that can request a GC. This was > visible through jstat and with Yasumasa's fix the LGCC columns shows the correct GC cause. > > Thanks, > Bengt From tony.printezis at oracle.com Fri Jan 28 20:32:00 2011 From: tony.printezis at oracle.com (Tony Printezis) Date: Fri, 28 Jan 2011 15:32:00 -0500 Subject: Review Request (s) - 7015169 GC Cause not always set In-Reply-To: <4D432055.9080608@oracle.com> References: <4D415E57.1080902@oracle.com> <4D432055.9080608@oracle.com> Message-ID: <4D4327C0.4030607@oracle.com> Ramki, Instead of the c'or of the base class setting the _cause field to a known value and checking later that the value has been changed, why don't we introduce a cause field on the c'or of the base class, which is then assigned to _cause, to force all subclasses to pass a value to it? Tony Y. Srinivas Ramakrishna wrote: > Hi Bengt -- > > This looks generally good to me, but i was wondering if we could > somehow make this > less "error-prone" in the following sense. There appears to be nothing > that > forces a gc op to actually set the _gc_cause value. We rely on each gc op > c'tor to initialize the field, and for each doit() to use a GCCauseSetter > to export the value into the heap when it runs. It would be nice if > we could verify that each op had its _gc_cause field initialized in the > c'tor, or at least before its doit() ran, and for one place to export > the field rather than each subclass remembering to do it. For the former, > the only thing i can think of off the top of my head is a hack: have the > base class with that field initialize _gc_cause to "_no_cause" in its > c'tor, > and to check in its d'tor that the value has been changed to something > different. We can't have the base class's c'tor check this > because the subclass c'tors would not have run by then. > For the latter, the only thing i could think of > feels somewhat awkward too: have the VMThread check if an STW op is a > GC op (we could introduce an attribute to check for this for any vm op), > and do the GCCauseSetter thing in the VM thread before calling the doit() > for each such op; may be the VMThread could at that time check that the > cause field was not a "not set" value. Unfortunately, this kind of leaks > these attributes and checks out of the vm op classes and so feels > awkward. > Perhaps someone might have better ideas on how that might be achieved. > (Of course such a "clean-up" could happen separately rather than needing > to be done in this changeset.) > > Other than those very high level comments, your changes look good to me > otherwise wrt their specifics. I did not of course check that we got > all the missing initializations which is one reason why i raised this > issue as well as to ease future changes and new gc vm ops. > > -- ramki > > On 1/27/2011 4:00 AM, Bengt Rutisson wrote: >> >> Hi Everybody, >> >> Following up on a mail discussion called "jstat LGCC column shows" on >> this mailing list. Yasumasa >> Suenaga has agreed to contribute the patch that he made to the >> OpenJDK project. I am helping him to >> get it pushed into the OpenJDK repositories. >> >> We created bug 7015169 for this issue. It is not available on >> http://bugs.sun.com yet, but I hope it >> gets published there soon. >> >> To push we need a couple of reviews. Here is the webrev: >> http://cr.openjdk.java.net/~brutisso/7015169/webrev.00/ >> >> The problem was that _gc_cause was not set by all VM_GC_Operation >> that can request a GC. This was >> visible through jstat and with Yasumasa's fix the LGCC columns shows >> the correct GC cause. >> >> Thanks, >> Bengt > From y.s.ramakrishna at oracle.com Fri Jan 28 20:47:48 2011 From: y.s.ramakrishna at oracle.com (Y. Srinivas Ramakrishna) Date: Fri, 28 Jan 2011 12:47:48 -0800 Subject: Review Request (s) - 7015169 GC Cause not always set In-Reply-To: <4D4327C0.4030607@oracle.com> References: <4D415E57.1080902@oracle.com> <4D432055.9080608@oracle.com> <4D4327C0.4030607@oracle.com> Message-ID: <4D432B74.1010700@oracle.com> On 1/28/2011 12:32 PM, Tony Printezis wrote: > Ramki, > > Instead of the c'or of the base class setting the _cause field to a known value and checking later > that the value has been changed, why don't we introduce a cause field on the c'or of the base class, > which is then assigned to _cause, to force all subclasses to pass a value to it? Ah, but of course :-) (or as the American expression goes: "Doh!"). -- ramki > > Tony > > Y. Srinivas Ramakrishna wrote: >> Hi Bengt -- >> >> This looks generally good to me, but i was wondering if we could somehow make this >> less "error-prone" in the following sense. There appears to be nothing that >> forces a gc op to actually set the _gc_cause value. We rely on each gc op >> c'tor to initialize the field, and for each doit() to use a GCCauseSetter >> to export the value into the heap when it runs. It would be nice if >> we could verify that each op had its _gc_cause field initialized in the >> c'tor, or at least before its doit() ran, and for one place to export >> the field rather than each subclass remembering to do it. For the former, >> the only thing i can think of off the top of my head is a hack: have the >> base class with that field initialize _gc_cause to "_no_cause" in its c'tor, >> and to check in its d'tor that the value has been changed to something >> different. We can't have the base class's c'tor check this >> because the subclass c'tors would not have run by then. >> For the latter, the only thing i could think of >> feels somewhat awkward too: have the VMThread check if an STW op is a >> GC op (we could introduce an attribute to check for this for any vm op), >> and do the GCCauseSetter thing in the VM thread before calling the doit() >> for each such op; may be the VMThread could at that time check that the >> cause field was not a "not set" value. Unfortunately, this kind of leaks >> these attributes and checks out of the vm op classes and so feels awkward. >> Perhaps someone might have better ideas on how that might be achieved. >> (Of course such a "clean-up" could happen separately rather than needing >> to be done in this changeset.) >> >> Other than those very high level comments, your changes look good to me >> otherwise wrt their specifics. I did not of course check that we got >> all the missing initializations which is one reason why i raised this >> issue as well as to ease future changes and new gc vm ops. >> >> -- ramki >> >> On 1/27/2011 4:00 AM, Bengt Rutisson wrote: >>> >>> Hi Everybody, >>> >>> Following up on a mail discussion called "jstat LGCC column shows" on this mailing list. Yasumasa >>> Suenaga has agreed to contribute the patch that he made to the OpenJDK project. I am helping him to >>> get it pushed into the OpenJDK repositories. >>> >>> We created bug 7015169 for this issue. It is not available on http://bugs.sun.com yet, but I hope it >>> gets published there soon. >>> >>> To push we need a couple of reviews. Here is the webrev: >>> http://cr.openjdk.java.net/~brutisso/7015169/webrev.00/ >>> >>> The problem was that _gc_cause was not set by all VM_GC_Operation that can request a GC. This was >>> visible through jstat and with Yasumasa's fix the LGCC columns shows the correct GC cause. >>> >>> Thanks, >>> Bengt >> From daniel.daugherty at oracle.com Sat Jan 29 18:26:22 2011 From: daniel.daugherty at oracle.com (daniel.daugherty at oracle.com) Date: Sat, 29 Jan 2011 18:26:22 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 6990754: Use native memory and reference counting to implement SymbolTable Message-ID: <20110129182627.D46A54726D@hg.openjdk.java.net> Changeset: 3582bf76420e Author: coleenp Date: 2011-01-27 16:11 -0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/3582bf76420e 6990754: Use native memory and reference counting to implement SymbolTable Summary: move symbols from permgen into C heap and reference count them Reviewed-by: never, acorn, jmasa, stefank ! agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java ! agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java ! agent/src/share/classes/sun/jvm/hotspot/interpreter/BytecodeWithKlass.java ! agent/src/share/classes/sun/jvm/hotspot/memory/DictionaryEntry.java ! agent/src/share/classes/sun/jvm/hotspot/memory/LoaderConstraintEntry.java ! agent/src/share/classes/sun/jvm/hotspot/memory/PlaceholderEntry.java ! agent/src/share/classes/sun/jvm/hotspot/memory/StringTable.java ! agent/src/share/classes/sun/jvm/hotspot/memory/SymbolTable.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java ! agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Method.java ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Symbol.java - agent/src/share/classes/sun/jvm/hotspot/oops/SymbolKlass.java ! agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java ! agent/src/share/classes/sun/jvm/hotspot/types/Field.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/Hashtable.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HashtableEntry.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/os/solaris/dtrace/generateJvmOffsets.cpp ! src/os/solaris/dtrace/jhelper.d ! src/os/solaris/dtrace/libjvm_db.c ! src/os/solaris/vm/dtraceJSDT_solaris.cpp ! src/share/vm/ci/ciClassList.hpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/ci/ciField.cpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/ci/ciKlass.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciObjArrayKlass.cpp ! src/share/vm/ci/ciObject.hpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/ci/ciObjectFactory.hpp ! src/share/vm/ci/ciSignature.cpp ! src/share/vm/ci/ciSignature.hpp ! src/share/vm/ci/ciSymbol.cpp ! src/share/vm/ci/ciSymbol.hpp - src/share/vm/ci/ciSymbolKlass.cpp - src/share/vm/ci/ciSymbolKlass.hpp ! src/share/vm/ci/compilerInterface.hpp ! src/share/vm/classfile/classFileError.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoader.hpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/javaAssertions.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/loaderConstraints.cpp ! src/share/vm/classfile/loaderConstraints.hpp ! src/share/vm/classfile/placeholders.cpp ! src/share/vm/classfile/placeholders.hpp ! src/share/vm/classfile/resolutionErrors.cpp ! src/share/vm/classfile/resolutionErrors.hpp ! src/share/vm/classfile/stackMapFrame.cpp ! src/share/vm/classfile/stackMapFrame.hpp ! src/share/vm/classfile/stackMapTable.cpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/verificationType.cpp ! src/share/vm/classfile/verificationType.hpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/classfile/verifier.hpp ! src/share/vm/classfile/vmSymbols.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/code/compiledIC.cpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileLog.hpp ! src/share/vm/compiler/compilerOracle.cpp ! src/share/vm/compiler/compilerOracle.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp ! src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/shared/concurrentGCThread.cpp ! src/share/vm/gc_implementation/shared/markSweep.cpp ! src/share/vm/interpreter/bytecode.cpp ! src/share/vm/interpreter/bytecode.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/interpreter.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/interpreter/linkResolver.hpp ! src/share/vm/memory/classify.cpp ! src/share/vm/memory/compactingPermGenGen.cpp ! src/share/vm/memory/compactingPermGenGen.hpp ! src/share/vm/memory/dump.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/iterator.hpp ! src/share/vm/memory/oopFactory.hpp ! src/share/vm/memory/restore.cpp ! src/share/vm/memory/serialize.cpp ! src/share/vm/memory/sharedHeap.cpp ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp ! src/share/vm/oops/arrayKlass.cpp ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/arrayOop.cpp ! src/share/vm/oops/constantPoolKlass.cpp ! src/share/vm/oops/constantPoolOop.cpp ! src/share/vm/oops/constantPoolOop.hpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/oops/generateOopMap.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceKlassKlass.cpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/klassKlass.cpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/klassVtable.hpp ! src/share/vm/oops/markOop.hpp ! src/share/vm/oops/methodKlass.cpp ! src/share/vm/oops/methodOop.cpp ! src/share/vm/oops/methodOop.hpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/objArrayKlassKlass.cpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/oops/oopsHierarchy.hpp + src/share/vm/oops/symbol.cpp + src/share/vm/oops/symbol.hpp - src/share/vm/oops/symbolKlass.cpp - src/share/vm/oops/symbolKlass.hpp - src/share/vm/oops/symbolOop.cpp - src/share/vm/oops/symbolOop.hpp ! src/share/vm/oops/typeArrayKlass.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/precompiled.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jniCheck.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm_misc.hpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.hpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.hpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/methodComparator.cpp ! src/share/vm/prims/methodHandleWalk.cpp ! src/share/vm/prims/methodHandleWalk.hpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/methodHandles.hpp ! src/share/vm/prims/nativeLookup.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/fieldDescriptor.hpp ! src/share/vm/runtime/fieldType.cpp ! src/share/vm/runtime/fieldType.hpp ! src/share/vm/runtime/fprofiler.cpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/frame.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/interfaceSupport.cpp ! src/share/vm/runtime/interfaceSupport.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/java.hpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/javaCalls.hpp ! src/share/vm/runtime/objectMonitor.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/reflection.cpp ! src/share/vm/runtime/reflection.hpp ! src/share/vm/runtime/reflectionUtils.hpp ! src/share/vm/runtime/rframe.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/signature.cpp ! src/share/vm/runtime/signature.hpp ! src/share/vm/runtime/statSampler.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vframe.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vmStructs.hpp ! src/share/vm/runtime/vm_operations.cpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/classLoadingService.cpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/lowMemoryDetector.cpp ! src/share/vm/services/management.cpp ! src/share/vm/services/management.hpp ! src/share/vm/services/memoryManager.cpp ! src/share/vm/services/memoryPool.cpp ! src/share/vm/services/memoryService.cpp ! src/share/vm/services/threadService.cpp ! src/share/vm/utilities/debug.cpp ! src/share/vm/utilities/debug.hpp ! src/share/vm/utilities/exceptions.cpp ! src/share/vm/utilities/exceptions.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/hashtable.hpp ! src/share/vm/utilities/hashtable.inline.hpp ! src/share/vm/utilities/utf8.cpp ! src/share/vm/utilities/utf8.hpp ! src/share/vm/utilities/xmlstream.cpp ! src/share/vm/utilities/xmlstream.hpp