From Jon.Masamitsu at Sun.COM Fri Aug 1 09:13:21 2008 From: Jon.Masamitsu at Sun.COM (Jon Masamitsu) Date: Fri, 01 Aug 2008 09:13:21 -0700 Subject: Minimum permgen size In-Reply-To: <6375.55375.qm@web54306.mail.re2.yahoo.com> References: <6375.55375.qm@web54306.mail.re2.yahoo.com> Message-ID: <48933621.3090000@sun.com> Rhys Yarranton wrote On 08/01/08 08:52,: > Is there a way to set the minimum permgen size? (Analogous to setting > the max size with -XX:MaxPermSize.) > > Reason I ask is we have a situation where the permgen is resizing > itself at an unfortunate time, causing a >1s VM pause. We'd like to > size it large enough so it never has to resize. > > Thanks, r. > > >------------------------------------------------------------------------ > >_______________________________________________ >hotspot-gc-use mailing list >hotspot-gc-use at openjdk.java.net >http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use > > Try using -XX:PermSize=. For example, java_home -XX:PermSize=128m -XX:+PrintGCDetails -version java version "1.7.0-ea" Java(TM) SE Runtime Environment (build 1.7.0-ea-b31) Java HotSpot(TM) Server VM (build 14.0-b01, mixed mode) Heap PSYoungGen total 10752K, used 184K [0xf1000000, 0xf1c00000, 0xfbc00000) eden space 9216K, 2% used [0xf1000000,0xf102e158,0xf1900000) from space 1536K, 0% used [0xf1a80000,0xf1a80000,0xf1c00000) to space 1536K, 0% used [0xf1900000,0xf1900000,0xf1a80000) PSOldGen total 24576K, used 0K [0xdb800000, 0xdd000000, 0xf1000000) object space 24576K, 0% used [0xdb800000,0xdb800000,0xdd000000) PSPermGen total 131072K, used 1484K [0xd3800000, 0xdb800000, 0xdb800000) object space 131072K, 1% used [0xd3800000,0xd3973010,0xdb800000) _______________________________________________ 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 sun.com Mon Aug 4 14:47:31 2008 From: jon.masamitsu at sun.com (jon.masamitsu at sun.com) Date: Mon, 04 Aug 2008 21:47:31 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 23 new changesets Message-ID: <20080804214817.7C18ED05E@hg.openjdk.java.net> Changeset: d95b224e9f17 Author: kamg Date: 2008-07-28 14:07 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/d95b224e9f17 6721093: -XX:AppendRatio=N not supported Summary: Add mechanism to ignore unsupported flags for a set period of time Reviewed-by: acorn, never, coleenp ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/includeDB_core ! src/share/vm/memory/universe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/init.cpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/java.hpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/threadLocalStorage.cpp ! src/share/vm/runtime/threadLocalStorage.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/threadService.cpp Changeset: 4395df5b73d3 Author: coleenp Date: 2008-07-30 15:06 -0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4395df5b73d3 Merge Changeset: 524eca34ea76 Author: kvn Date: 2008-07-03 18:02 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/524eca34ea76 6684714: Optimize EA Connection Graph build performance Summary: switch on EA by default, optimize Connection Graph construction Reviewed-by: rasbold, never ! src/share/vm/compiler/oopMap.cpp ! src/share/vm/compiler/oopMap.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/escape.hpp Changeset: 4a4c365f777d Author: kvn Date: 2008-07-11 12:19 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4a4c365f777d Merge ! src/share/vm/compiler/oopMap.cpp ! src/share/vm/compiler/oopMap.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/escape.hpp Changeset: 9b66e6287f4a Author: rasbold Date: 2008-07-16 10:08 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/9b66e6287f4a 6707044: uncommon_trap of ifnull bytecode leaves garbage on expression stack Summary: Remove call to repush_if_args() Reviewed-by: kvn, jrose ! src/share/vm/opto/parse2.cpp Changeset: 02a35ad4adf8 Author: kvn Date: 2008-07-16 16:04 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/02a35ad4adf8 6723160: Nightly failure: Error: meet not symmetric Summary: Add missing _instance_id settings and other EA fixes. Reviewed-by: rasbold ! src/share/vm/adlc/formssel.cpp ! src/share/vm/opto/callnode.cpp ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/macro.hpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/type.cpp + test/compiler/6724218/Test.java Changeset: 18aab3cdd513 Author: rasbold Date: 2008-07-21 13:37 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/18aab3cdd513 6726504: handle do_ifxxx calls in parser more uniformly Summary: make do_ifnull() handling similar to do_if() Reviewed-by: jrose, kvn ! src/share/vm/opto/parse.hpp ! src/share/vm/opto/parse2.cpp Changeset: 910a4cb98e9e Author: never Date: 2008-07-25 09:07 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/910a4cb98e9e 6717457: Internal Error (src/share/vm/code/relocInfo.hpp:1089) Reviewed-by: kvn ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp Changeset: 6ca61c728c2d Author: never Date: 2008-07-25 11:32 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/6ca61c728c2d 6712835: Server compiler fails with assertion (loop_count < K,"infinite loop in PhaseIterGVN::transform") Reviewed-by: kvn ! src/share/vm/ci/ciMethodBlocks.cpp ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/ifnode.cpp + test/compiler/6712835/Test6712835.java Changeset: 020a0b730379 Author: never Date: 2008-07-25 15:54 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/020a0b730379 6700047: C2 failed in idom_no_update Summary: partial peeling shouldn't place clones into loop Reviewed-by: kvn ! src/share/vm/opto/loopopts.cpp + test/compiler/6700047/Test6700047.java Changeset: be7facf71163 Author: kvn Date: 2008-07-25 16:03 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/be7facf71163 6729552: jvm98 crashes with SS12 built jdk on Solaris X64 fastdebug version Summary: SS12 C++ tripped over new templates usage in instanceKlass.cpp. Reviewed-by: never ! make/solaris/makefiles/fastdebug.make Changeset: b0fe4deeb9fb Author: kvn Date: 2008-07-28 17:12 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/b0fe4deeb9fb 6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.") Summary: Escape Analysis fixes. Reviewed-by: never, rasbold ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/escape.hpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/loopopts.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/superword.cpp ! src/share/vm/runtime/arguments.cpp ! test/compiler/6646019/Test.java ! test/compiler/6689060/Test.java ! test/compiler/6695810/Test.java + test/compiler/6726999/Test.java Changeset: 3e333d6f35dd Author: rasbold Date: 2008-07-29 14:48 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/3e333d6f35dd 6730192: expression stack wrong at deoptimization point Summary: add safepoint before popping expression stack, not after Reviewed-by: kvn ! src/share/vm/opto/parse2.cpp Changeset: ef72a36b968e Author: kvn Date: 2008-07-30 09:54 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/ef72a36b968e Merge ! src/share/vm/runtime/arguments.cpp Changeset: 4c5fa80d85da Author: kvn Date: 2008-07-31 13:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4c5fa80d85da Merge ! src/share/vm/runtime/arguments.cpp Changeset: 40b69ca33f4b Author: kvn Date: 2008-07-31 15:47 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/40b69ca33f4b 6732312: Switch off executing Escape Analysis by default Summary: Switch off executing Escape Analysis by default for now Reviewed-by: rasbold ! src/share/vm/opto/c2_globals.hpp Changeset: 54499b980c23 Author: swamyv Date: 2008-07-29 13:54 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/54499b980c23 6710791: Remove files or build from source:maf-1_0.jar, jlfg-1_0.jar Summary: Removed maf-1_0.jar and jlfg-1_0.jar files. Reviewed-by: poonam, jjh ! agent/make/Makefile ! agent/make/bugspot.bat ! agent/make/build.xml ! agent/make/hsdb.bat ! agent/make/hsdb.sh ! agent/make/saenv.bat ! agent/make/saenv.sh ! agent/make/saenv64.bat ! agent/make/saenv64.sh + agent/src/share/classes/com/sun/java/swing/action/AboutAction.java + agent/src/share/classes/com/sun/java/swing/action/ActionManager.java + agent/src/share/classes/com/sun/java/swing/action/ActionUtilities.java + agent/src/share/classes/com/sun/java/swing/action/AlignCenterAction.java + agent/src/share/classes/com/sun/java/swing/action/AlignLeftAction.java + agent/src/share/classes/com/sun/java/swing/action/AlignRightAction.java + agent/src/share/classes/com/sun/java/swing/action/ApplyAction.java + agent/src/share/classes/com/sun/java/swing/action/BackAction.java + agent/src/share/classes/com/sun/java/swing/action/CancelAction.java + agent/src/share/classes/com/sun/java/swing/action/DelegateAction.java + agent/src/share/classes/com/sun/java/swing/action/ExitAction.java + agent/src/share/classes/com/sun/java/swing/action/FileMenu.java + agent/src/share/classes/com/sun/java/swing/action/FinishAction.java + agent/src/share/classes/com/sun/java/swing/action/HelpAction.java + agent/src/share/classes/com/sun/java/swing/action/HelpMenu.java + agent/src/share/classes/com/sun/java/swing/action/NewAction.java + agent/src/share/classes/com/sun/java/swing/action/NextAction.java + agent/src/share/classes/com/sun/java/swing/action/OkAction.java + agent/src/share/classes/com/sun/java/swing/action/OpenAction.java + agent/src/share/classes/com/sun/java/swing/action/SaveAction.java + agent/src/share/classes/com/sun/java/swing/action/SaveAsAction.java + agent/src/share/classes/com/sun/java/swing/action/StateChangeAction.java + agent/src/share/classes/com/sun/java/swing/action/ViewMenu.java + agent/src/share/classes/com/sun/java/swing/ui/CommonMenuBar.java + agent/src/share/classes/com/sun/java/swing/ui/CommonToolBar.java + agent/src/share/classes/com/sun/java/swing/ui/CommonUI.java + agent/src/share/classes/com/sun/java/swing/ui/OkCancelButtonPanel.java + agent/src/share/classes/com/sun/java/swing/ui/OkCancelDialog.java + agent/src/share/classes/com/sun/java/swing/ui/SplashScreen.java + agent/src/share/classes/com/sun/java/swing/ui/StatusBar.java + agent/src/share/classes/com/sun/java/swing/ui/TabsDlg.java + agent/src/share/classes/com/sun/java/swing/ui/ToggleActionPropertyChangeListener.java + agent/src/share/classes/com/sun/java/swing/ui/WizardDlg.java + agent/src/share/classes/images/toolbarButtonGraphics/development/Server16.gif + agent/src/share/classes/images/toolbarButtonGraphics/development/Server24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/About16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/About24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Delete16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Delete24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Find16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Help16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Help24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/History16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/History24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Information16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Information24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/New16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/New24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Open16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Open24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Save16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Save24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/SaveAs16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/SaveAs24.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/Zoom16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/ZoomIn16.gif + agent/src/share/classes/images/toolbarButtonGraphics/general/ZoomIn24.gif + agent/src/share/classes/images/toolbarButtonGraphics/navigation/Down16.gif + agent/src/share/classes/images/toolbarButtonGraphics/navigation/Up16.gif + agent/src/share/classes/images/toolbarButtonGraphics/text/AlignCenter16.gif + agent/src/share/classes/images/toolbarButtonGraphics/text/AlignCenter24.gif + agent/src/share/classes/images/toolbarButtonGraphics/text/AlignLeft16.gif + agent/src/share/classes/images/toolbarButtonGraphics/text/AlignLeft24.gif + agent/src/share/classes/images/toolbarButtonGraphics/text/AlignRight16.gif + agent/src/share/classes/images/toolbarButtonGraphics/text/AlignRight24.gif - agent/src/share/lib/jlfgr-1_0.jar - agent/src/share/lib/maf-1_0.jar Changeset: c7e8144ef65e Author: dcubed Date: 2008-07-30 14:41 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/c7e8144ef65e Merge - agent/src/share/lib/jlfgr-1_0.jar - agent/src/share/lib/maf-1_0.jar Changeset: 610674f963d2 Author: dcubed Date: 2008-07-31 22:34 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/610674f963d2 Merge - agent/src/share/lib/jlfgr-1_0.jar - agent/src/share/lib/maf-1_0.jar Changeset: 7f601f7c9b48 Author: martin Date: 2008-07-31 18:50 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7f601f7c9b48 6731726: jmap -permstat reports only 50-60% of permgen memory usage. Reviewed-by: swamyv, martin Contributed-by: yamauchi at google.com ! agent/src/share/classes/sun/jvm/hotspot/tools/PermStat.java Changeset: f31ba9518910 Author: dcubed Date: 2008-07-31 22:40 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/f31ba9518910 Merge Changeset: b7f01ad69d30 Author: jmasa Date: 2008-08-04 12:11 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/b7f01ad69d30 Merge - agent/src/share/lib/jlfgr-1_0.jar - agent/src/share/lib/maf-1_0.jar ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/share/vm/includeDB_core Changeset: e8cf9b1f7c93 Author: jmasa Date: 2008-08-04 12:15 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e8cf9b1f7c93 Merge From Michael.Dugan at Sun.COM Thu Aug 7 10:20:01 2008 From: Michael.Dugan at Sun.COM (Michael Dugan) Date: Thu, 07 Aug 2008 12:20:01 -0500 Subject: status of G1 garbage collector Message-ID: <489B2EC1.3000508@sun.com> Hi, Sorry for that last post. We are wondering about the status of the G1 garbage collector? Maybe a beta we could get our hands on to get some experience with it. -M From Y.S.Ramakrishna at Sun.COM Thu Aug 7 16:17:29 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Thu, 07 Aug 2008 16:17:29 -0700 Subject: Request for review: (small): 6722112 CMS: Incorrect encoding of overflown object arrays during concurrent precleaning Message-ID: webrev: http://analemma.sfbay.sun.com/net/spot/workspaces/ysr/cms_ovflw/webrev/ [I reproduce the small 1-file patch below -- scroll past my signoff below.] 6722112 CMS: Incorrect encoding of overflown object arrays during concurrent precleaning [This is one of 3 sub-bugs created to address the fixes entailed in CR 6578335; the other two on the anvil are CR 6722113 and 6722116 which we shall submit for review soon.] When encoding the "greyness" of objects that overflowed the grey bag (i.e. marking stack), we were dirtying the card in the mod-union table that started the object, with the expectation that a subsequent round of precleaning or a final remark phase would scan those overflown objects. However, for precleaning/remark efficiency of large object arrays, we (both mark and) scan object arrays precisely (i.e. only the portions of such arrays that lie on dirty cards). This would obviously be vulnerable to missing those references that were installed before the start of the marking cycle and not modified since. The fix is to dirty the entire overflow object array in the mod union table. Many thanks to Poonam Bajaj for crucial help in identifying the problem(s) and for subsequent verification/testing. Testing: the failing big apps test w/stress options, refworkload, jprt thanks for yr reviews. -- ramki ---- patch ---- --- old/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Aug 7 15:49:55 2008 +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Aug 7 15:49:54 2008 @@ -6867,11 +6867,9 @@ // during the preclean or remark phase. (CMSCleanOnEnter) if (CMSCleanOnEnter) { size_t sz = _collector->block_size_using_printezis_bits(addr); - HeapWord* start_card_addr = (HeapWord*)round_down( - (intptr_t)addr, CardTableModRefBS::card_size); HeapWord* end_card_addr = (HeapWord*)round_to( (intptr_t)(addr+sz), CardTableModRefBS::card_size); - MemRegion redirty_range = MemRegion(start_card_addr, end_card_addr); + MemRegion redirty_range = MemRegion(addr, end_card_addr); assert(!redirty_range.is_empty(), "Arithmetical tautology"); // Bump _threshold to end_card_addr; note that // _threshold cannot possibly exceed end_card_addr, anyhow. @@ -7460,12 +7458,25 @@ ) if (simulate_overflow || !_mark_stack->push(obj)) { if (_concurrent_precleaning) { - // During precleaning we can just dirty the appropriate card + // During precleaning we can just dirty the appropriate card(s) // in the mod union table, thus ensuring that the object remains - // in the grey set and continue. Note that no one can be intefering - // with us in this action of dirtying the mod union table, so - // no locking is required. - _mod_union_table->mark(addr); + // in the grey set and continue. In the case of object arrays + // we need to dirty all of the cards that the object spans, + // since the rescan of object arrays will be limited to the + // dirty cards. + // Note that no one can be intefering with us in this action + // of dirtying the mod union table, so no locking or atomics + // are required. + if (obj->is_objArray()) { + size_t sz = obj->size(); + HeapWord* end_card_addr = (HeapWord*)round_to( + (intptr_t)(addr+sz), CardTableModRefBS::card_size); + MemRegion redirty_range = MemRegion(addr, end_card_addr); + assert(!redirty_range.is_empty(), "Arithmetical tautology"); + _mod_union_table->mark_range(redirty_range); + } else { + _mod_union_table->mark(addr); + } _collector->_ser_pmc_preclean_ovflw++; } else { // During the remark phase, we need to remember this oop From Y.S.Ramakrishna at Sun.COM Mon Aug 11 16:02:38 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Mon, 11 Aug 2008 16:02:38 -0700 Subject: jdk 1.4.2_17 promotion failure (fragmentation?) In-Reply-To: <48A08954.10504@mikefinn.com> References: <48A08954.10504@mikefinn.com> Message-ID: It's almost certainly fragmentation, although the extent of fragmentation appears quite excessive. You have roughly 2.9 GB of free space in the old generation at the point at which the promotion failed. The scavenge preceding the one in which the promotion failure occurred promoted almost nothing to the old generation, so the expectation is that the failing scavenge would also try to promote a pretty small amount of data. Thus, it would seem that the 2.9 GB of free space in the old generation must be excessively fragmented not to be able to absorb even that small amount of promotion. Frankly, I am surprised at this behaviour. Is there something inherent in your application that causes the sizes and lifetimes of your longer-lived objects to vary a lot over time? Can you share with us a longer GC log and perhaps some data as to the frequency of such promotion failure events? I'll cintact you off-line for the GC logs. -- ramki ----- Original Message ----- From: Mike Finn Date: Monday, August 11, 2008 11:48 am Subject: jdk 1.4.2_17 promotion failure (fragmentation?) To: hotspot-gc-use at openjdk.java.net > We have a large, long running server application running in Weblogic > (using jdk 1.4.2_17) and using CMS. > > We originally were running in 32-bit mode and were getting promotion > failures and concurrent mode failures. When this happened, there was > usually a good amount of tenured space free, so we thought that the > problem was with fragmentation of the free space in the tenured generation. > > To fix that, we've tried increasing the heap size. We have kept upping > > the heap size (moving to 64-bit to do so) and now have a heap size of > > 14G (see command line options below). The problem persisted and we > experimented with lowering the newsize to try to reduce the > requirement > for contiguous space in tenured space, but we still promotion failures > > (see log snippet at the end of this email). > > Is there anything else we can do in regards to tuning (lower the > CMSInitiatingOccupancyFraction?) ? Or are we going to have to move to > a > newer JDK? Or is it still possible that we have a memory leak or some > > other abberrant program behavior? > > /j2sdk1.4.2_17/bin/java -server -XX:CMSInitiatingOccupancyFraction=70 > > -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=8 > -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:PermSize=96m > -XX:MaxPermSize=96m -XX:MaxTenuringThreshold=5 -Xms14336m -Xmx14336m > -Xss256k -XX:+HandlePromotionFailure -XX:+PrintTenuringDistribution -d64 > > > > 265150.609: [GC {Heap before GC invocations=57327: > Heap > par new generation total 294912K, used 273751K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 100% used [0xfffffffbef000000, > 0xfffffffbff000000, > 0xfffffffbff000000) > from space 32768K, 35% used [0xfffffffc01000000, > 0xfffffffc01b55cf0, > 0xfffffffc03000000) > to space 32768K, 0% used [0xfffffffbff000000, > 0xfffffffbff000000, > 0xfffffffc01000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > 265150.611: [ParNew > Desired survivor size 16777216 bytes, new threshold 2 (max 5) > - age 1: 11435216 bytes, 11435216 total > - age 2: 8139232 bytes, 19574448 total > : 273751K->19272K(294912K), 0.2576767 secs] > 11950324K->11695845K(14647296K) Heap after GC invocations=57328: > Heap > par new generation total 294912K, used 19272K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 0% used [0xfffffffbef000000, > 0xfffffffbef000000, > 0xfffffffbff000000) > from space 32768K, 58% used [0xfffffffbff000000, > 0xfffffffc002d21b0, > 0xfffffffc01000000) > to space 32768K, 0% used [0xfffffffc01000000, > 0xfffffffc01000000, > 0xfffffffc03000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > } , 0.2600295 secs] > 265152.992: [GC {Heap before GC invocations=57328: > Heap > par new generation total 294912K, used 281416K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 100% used [0xfffffffbef000000, > 0xfffffffbff000000, > 0xfffffffbff000000) > from space 32768K, 58% used [0xfffffffbff000000, > 0xfffffffc002d21b0, > 0xfffffffc01000000) > to space 32768K, 0% used [0xfffffffc01000000, > 0xfffffffc01000000, > 0xfffffffc03000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > 265152.994: [ParNew (promotion failed) > Desired survivor size 16777216 bytes, new threshold 2 (max 5) > - age 1: 15741536 bytes, 15741536 total > - age 2: 7459336 bytes, 23200872 total > : 281416K->281416K(294912K), 2.7625640 secs]265155.757: > [CMS265176.917: > [CMS-concurrent-preclean: 30.615/36.559 secs] > (concurrent mode failure)[Unloading class > sun.reflect.GeneratedSerializationConstructorAccessor193] > > _______________________________________________ > 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 Sun.COM Tue Aug 12 18:08:07 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Tue, 12 Aug 2008 18:08:07 -0700 Subject: jdk 1.4.2_17 promotion failure (fragmentation?) In-Reply-To: <027FCB5D4C65CC4CA714042A4EE8CC6B04B2A954@nzprm231.apac.corp.eds.com> References: <48A08954.10504@mikefinn.com> <027FCB5D4C65CC4CA714042A4EE8CC6B04B2A954@nzprm231.apac.corp.eds.com> Message-ID: Hi Doug -- You are mostly right about the differnce regarding promotion failure and the "full promotion guarantee" between 1.4.2 and 5.0. However, recently some of the 5.0 code to relax the full promotion guarantee, kick off CMS collections "ergonomically" and dealing with unexpected promotion failure was backported to 1.4.2 (can;t recall which version). So the version 1.4.2_17 that Mike is running does behave somewhat like 5.0 in that respect. It also seems from the GC snippet that a scavenge was attempted but bailed midway (or at least so it would seem from the fact that the scavenge time reports at 2.76 seconds or so -- quite likely because of the bail-out and recovery phase of a failed scavenge). We'll have to look to see why the heap might have gotten so excessively fragmented, based on the fuller, more detailed logs that Mike has provided. -- ramki > It is likely to be due to fragmentation of tenured (a CMS GC does not > compact tenured). Under the 1.4.2 the 'New Generation Guarantee' > requires that when a scavenge occurs there is contiguous space available > in tenured equal to the size of the New area (5.0 relaxes that to just > being enough space available, not necessarily contiguous). > > The fix is easy: you are half-way there with setting > -XX:CMSInitiatingOccupancyFraction=70. However to tell the JVM to take > notice of it you also need to add -XX:+UseCMSInitiatingOccupancyOnly, > then CMS Collections will always kick in when tenured is approx 70% > full. I would suspect that currently they don't until tenured is well > above 90% full (1.4.2 is more optimistic I think than 5.0 about its > ability to schedule a CMS GC 'JIT with a bit to spare', but > conc-mode-failures can still be a problem under 5.0). > > Doug. > > > -----Original Message----- > From: hotspot-gc-use-bounces at openjdk.java.net > [mailto:hotspot-gc-use-bounces at openjdk.java.net] On Behalf Of Mike Finn > Sent: Tuesday, 12 August 2008 6:48 a.m. > To: hotspot-gc-use at openjdk.java.net > Subject: jdk 1.4.2_17 promotion failure (fragmentation?) > > We have a large, long running server application running in Weblogic > (using jdk 1.4.2_17) and using CMS. > > We originally were running in 32-bit mode and were getting promotion > failures and concurrent mode failures. When this happened, there was > usually a good amount of tenured space free, so we thought that the > problem was with fragmentation of the free space in the tenured > generation. > > To fix that, we've tried increasing the heap size. We have kept upping > the heap size (moving to 64-bit to do so) and now have a heap size of > 14G (see command line options below). The problem persisted and we > experimented with lowering the newsize to try to reduce the requirement > for contiguous space in tenured space, but we still promotion failures > (see log snippet at the end of this email). > > Is there anything else we can do in regards to tuning (lower the > CMSInitiatingOccupancyFraction?) ? Or are we going to have to move to > a > newer JDK? Or is it still possible that we have a memory leak or some > other abberrant program behavior? > > /j2sdk1.4.2_17/bin/java -server -XX:CMSInitiatingOccupancyFraction=70 > -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=8 > -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:PermSize=96m > -XX:MaxPermSize=96m -XX:MaxTenuringThreshold=5 -Xms14336m -Xmx14336m > -Xss256k -XX:+HandlePromotionFailure -XX:+PrintTenuringDistribution -d64 > > > > 265150.609: [GC {Heap before GC invocations=57327: > Heap > par new generation total 294912K, used 273751K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 100% used [0xfffffffbef000000, 0xfffffffbff000000, > 0xfffffffbff000000) > from space 32768K, 35% used [0xfffffffc01000000, 0xfffffffc01b55cf0, > 0xfffffffc03000000) > to space 32768K, 0% used [0xfffffffbff000000, > 0xfffffffbff000000, > 0xfffffffc01000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > 265150.611: [ParNew > Desired survivor size 16777216 bytes, new threshold 2 (max 5) > - age 1: 11435216 bytes, 11435216 total > - age 2: 8139232 bytes, 19574448 total > : 273751K->19272K(294912K), 0.2576767 secs] > 11950324K->11695845K(14647296K) Heap after GC invocations=57328: > Heap > par new generation total 294912K, used 19272K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 0% used [0xfffffffbef000000, 0xfffffffbef000000, > > 0xfffffffbff000000) > from space 32768K, 58% used [0xfffffffbff000000, 0xfffffffc002d21b0, > 0xfffffffc01000000) > to space 32768K, 0% used [0xfffffffc01000000, > 0xfffffffc01000000, > 0xfffffffc03000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) } , > 0.2600295 secs] > 265152.992: [GC {Heap before GC invocations=57328: > Heap > par new generation total 294912K, used 281416K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 100% used [0xfffffffbef000000, 0xfffffffbff000000, > 0xfffffffbff000000) > from space 32768K, 58% used [0xfffffffbff000000, 0xfffffffc002d21b0, > 0xfffffffc01000000) > to space 32768K, 0% used [0xfffffffc01000000, > 0xfffffffc01000000, > 0xfffffffc03000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > 265152.994: [ParNew (promotion failed) > Desired survivor size 16777216 bytes, new threshold 2 (max 5) > - age 1: 15741536 bytes, 15741536 total > - age 2: 7459336 bytes, 23200872 total > : 281416K->281416K(294912K), 2.7625640 secs]265155.757: > [CMS265176.917: > [CMS-concurrent-preclean: 30.615/36.559 secs] (concurrent mode > failure)[Unloading class > sun.reflect.GeneratedSerializationConstructorAccessor193] > > _______________________________________________ > 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 _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From Keith.Holdaway at sas.com Thu Aug 7 14:17:58 2008 From: Keith.Holdaway at sas.com (Keith Holdaway) Date: Thu, 7 Aug 2008 17:17:58 -0400 Subject: G1 In-Reply-To: <4886336C.1060403@Sun.COM> References: <4886336C.1060403@Sun.COM> Message-ID: <304E9E55F6A4BE4B910C2437D4D1B4960B22E25483@MERCMBX14.na.sas.com> In which update of JDK 6.0 will G1 be included? Keith R Holdaway Java Development Technologies SAS The Power to Know Carpe Diem _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From Keith.Holdaway at sas.com Mon Aug 11 18:27:39 2008 From: Keith.Holdaway at sas.com (Keith Holdaway) Date: Mon, 11 Aug 2008 21:27:39 -0400 Subject: jdk 1.4.2_17 promotion failure (fragmentation?) In-Reply-To: References: <48A08954.10504@mikefinn.com>, Message-ID: <304E9E55F6A4BE4B910C2437D4D1B4960B2210653C@MERCMBX14.na.sas.com> I think I witnessed something very similar with our middle-tier apps in JBoss on 64 bit Windows try using the incremental CMS iCMS mode. This effectively resolved our situation. This is tantamount to reducing the CMS occupancy fraction in some ways. keith ________________________________________ From: hotspot-gc-dev-bounces at openjdk.java.net [hotspot-gc-dev-bounces at openjdk.java.net] On Behalf Of Y Srinivas Ramakrishna [Y.S.Ramakrishna at Sun.COM] Sent: Monday, August 11, 2008 7:02 PM To: Mike Finn Cc: hotspot-gc-use at openjdk.java.net Subject: Re: jdk 1.4.2_17 promotion failure (fragmentation?) It's almost certainly fragmentation, although the extent of fragmentation appears quite excessive. You have roughly 2.9 GB of free space in the old generation at the point at which the promotion failed. The scavenge preceding the one in which the promotion failure occurred promoted almost nothing to the old generation, so the expectation is that the failing scavenge would also try to promote a pretty small amount of data. Thus, it would seem that the 2.9 GB of free space in the old generation must be excessively fragmented not to be able to absorb even that small amount of promotion. Frankly, I am surprised at this behaviour. Is there something inherent in your application that causes the sizes and lifetimes of your longer-lived objects to vary a lot over time? Can you share with us a longer GC log and perhaps some data as to the frequency of such promotion failure events? I'll cintact you off-line for the GC logs. -- ramki ----- Original Message ----- From: Mike Finn Date: Monday, August 11, 2008 11:48 am Subject: jdk 1.4.2_17 promotion failure (fragmentation?) To: hotspot-gc-use at openjdk.java.net > We have a large, long running server application running in Weblogic > (using jdk 1.4.2_17) and using CMS. > > We originally were running in 32-bit mode and were getting promotion > failures and concurrent mode failures. When this happened, there was > usually a good amount of tenured space free, so we thought that the > problem was with fragmentation of the free space in the tenured generation. > > To fix that, we've tried increasing the heap size. We have kept upping > > the heap size (moving to 64-bit to do so) and now have a heap size of > > 14G (see command line options below). The problem persisted and we > experimented with lowering the newsize to try to reduce the > requirement > for contiguous space in tenured space, but we still promotion failures > > (see log snippet at the end of this email). > > Is there anything else we can do in regards to tuning (lower the > CMSInitiatingOccupancyFraction?) ? Or are we going to have to move to > a > newer JDK? Or is it still possible that we have a memory leak or some > > other abberrant program behavior? > > /j2sdk1.4.2_17/bin/java -server -XX:CMSInitiatingOccupancyFraction=70 > > -XX:NewSize=320m -XX:MaxNewSize=320m -XX:SurvivorRatio=8 > -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:PermSize=96m > -XX:MaxPermSize=96m -XX:MaxTenuringThreshold=5 -Xms14336m -Xmx14336m > -Xss256k -XX:+HandlePromotionFailure -XX:+PrintTenuringDistribution -d64 > > > > 265150.609: [GC {Heap before GC invocations=57327: > Heap > par new generation total 294912K, used 273751K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 100% used [0xfffffffbef000000, > 0xfffffffbff000000, > 0xfffffffbff000000) > from space 32768K, 35% used [0xfffffffc01000000, > 0xfffffffc01b55cf0, > 0xfffffffc03000000) > to space 32768K, 0% used [0xfffffffbff000000, > 0xfffffffbff000000, > 0xfffffffc01000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > 265150.611: [ParNew > Desired survivor size 16777216 bytes, new threshold 2 (max 5) > - age 1: 11435216 bytes, 11435216 total > - age 2: 8139232 bytes, 19574448 total > : 273751K->19272K(294912K), 0.2576767 secs] > 11950324K->11695845K(14647296K) Heap after GC invocations=57328: > Heap > par new generation total 294912K, used 19272K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 0% used [0xfffffffbef000000, > 0xfffffffbef000000, > 0xfffffffbff000000) > from space 32768K, 58% used [0xfffffffbff000000, > 0xfffffffc002d21b0, > 0xfffffffc01000000) > to space 32768K, 0% used [0xfffffffc01000000, > 0xfffffffc01000000, > 0xfffffffc03000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > } , 0.2600295 secs] > 265152.992: [GC {Heap before GC invocations=57328: > Heap > par new generation total 294912K, used 281416K [0xfffffffbef000000, > > 0xfffffffc03000000, 0xfffffffc03000000) > eden space 262144K, 100% used [0xfffffffbef000000, > 0xfffffffbff000000, > 0xfffffffbff000000) > from space 32768K, 58% used [0xfffffffbff000000, > 0xfffffffc002d21b0, > 0xfffffffc01000000) > to space 32768K, 0% used [0xfffffffc01000000, > 0xfffffffc01000000, > 0xfffffffc03000000) > concurrent mark-sweep generation total 14352384K, used 11676573K > [0xfffffffc03000000, 0xffffffff6f000000, 0xffffffff6f000000) > concurrent-mark-sweep perm gen total 98304K, used 67646K > [0xffffffff6f000000, 0xffffffff75000000, 0xffffffff75000000) > 265152.994: [ParNew (promotion failed) > Desired survivor size 16777216 bytes, new threshold 2 (max 5) > - age 1: 15741536 bytes, 15741536 total > - age 2: 7459336 bytes, 23200872 total > : 281416K->281416K(294912K), 2.7625640 secs]265155.757: > [CMS265176.917: > [CMS-concurrent-preclean: 30.615/36.559 secs] > (concurrent mode failure)[Unloading class > sun.reflect.GeneratedSerializationConstructorAccessor193] > > _______________________________________________ > 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 _______________________________________________ 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 Sun.COM Wed Aug 13 11:38:49 2008 From: Jon.Masamitsu at Sun.COM (Jon Masamitsu) Date: Wed, 13 Aug 2008 11:38:49 -0700 Subject: G1 In-Reply-To: <304E9E55F6A4BE4B910C2437D4D1B4960B22E25483@MERCMBX14.na.sas.com> References: <4886336C.1060403@Sun.COM> <304E9E55F6A4BE4B910C2437D4D1B4960B22E25483@MERCMBX14.na.sas.com> Message-ID: <48A32A39.305@Sun.COM> Keith, The hotspot binaries for jdk6 update 12 will include G1. There is nothing official about G1's inclusion in jdk6u12 but that's how it's looking right now. In jdk6u12 G1 will be an experimental collector. I don't think a decision has been made regarding when it will be a supported collector in a jdk6 update. That likely depends on feedback we get from users who try it. Jon On 08/07/08 14:17, Keith Holdaway wrote: > In which update of JDK 6.0 will G1 be included? > > Keith R Holdaway > Java Development Technologies > > SAS The Power to Know > > Carpe Diem > _______________________________________________ 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 sun.com Wed Aug 13 12:07:31 2008 From: tony.printezis at sun.com (Tony Printezis) Date: Wed, 13 Aug 2008 15:07:31 -0400 Subject: Who hates the *Ratio parameters? Message-ID: <48A330F3.4070509@sun.com> Hi all, I personally don't like the *Ratio parameters (e.g., -XX:SurvivorRatio=) as I don't think they are very intuitive to set. I've heard the same from a few customers too. Would most people prefer parameters based on percentages (e.g., -XX:SurvivorPerc=, where 0 <= <= 100) instead? Tony -- ---------------------------------------------------------------------- | Tony Printezis, Staff Engineer | Sun Microsystems Inc. | | | MS BUR02-311 | | e-mail: tony.printezis at sun.com | 35 Network Drive | | office: +1 781 442 0998 (x20998) | Burlington, MA01803-0902, USA | ---------------------------------------------------------------------- e-mail client: Thunderbird (Solaris) _______________________________________________ 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 sun.com Wed Aug 13 12:29:32 2008 From: tony.printezis at sun.com (Tony Printezis) Date: Wed, 13 Aug 2008 15:29:32 -0400 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A33279.4050405@sun.com> References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> Message-ID: <48A3361C.3070105@sun.com> Paul, Paul Hohensee wrote: > I would. I'd use "SurvivorPercent" though, not "SurvivorPerc". The > latter > sounds like a bonus you get for surviving. :) I was trying to be a be concise, but sure Percent is fine. > Or maybe just add "SurvivorSize" and "MaxSurvivorSize", like we have > "NewSize" and "MaxNewSize". That'd be exact, unlike either a percent > or a ratio. Well, the problem with using specific sizes is that, if you resize your young gen (in this case), the survivor size will also have to change. Maybe, using percentages will handle that case a bit better (even though I can think of some cases when you want to fix the survivor size but maybe vary the eden size). > btw, we seem to use the term "Ratio" to mean both a genuine ratio _and_ a > percent. E.g., "SurvivorRatio" is a genuine ratio, but > "MinHeapFreeRatio" > is a percent. Yep. Unfortunately, we cannot change the meaning of MinHeapFreeRatio (to keep backwards compatibility). So, maybe, it'd be best to introduce a new parameter, say MinHeapFreePercent, with the same semantics as MinHeapFreeRatio, as a way to start migrating users to the correct one. Tony > Tony Printezis wrote: >> Hi all, >> >> I personally don't like the *Ratio parameters (e.g., >> -XX:SurvivorRatio=) as I don't think they are very intuitive to >> set. I've heard the same from a few customers too. Would most people >> prefer parameters based on percentages (e.g., -XX:SurvivorPerc=, >> where 0 <= <= 100) instead? >> >> Tony >> >> -- ---------------------------------------------------------------------- | Tony Printezis, Staff Engineer | Sun Microsystems Inc. | | | MS BUR02-311 | | e-mail: tony.printezis at sun.com | 35 Network Drive | | office: +1 781 442 0998 (x20998) | Burlington, MA01803-0902, USA | ---------------------------------------------------------------------- e-mail client: Thunderbird (Solaris) _______________________________________________ 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 sun.com Wed Aug 13 13:35:22 2008 From: tony.printezis at sun.com (Tony Printezis) Date: Wed, 13 Aug 2008 16:35:22 -0400 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A344EE.3010901@sun.com> References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> <48A344EE.3010901@sun.com> Message-ID: <48A3458A.3010406@sun.com> John, The GC erconomics do largely do that. However, a lot of users still do manualy tuning to get the last oz of performance they can get... Tony John Pampuch wrote: > Tony- > > In the grand scheme of things though, it would be better if we could > figure these out automatically and not need the parameter at all. > > -John > > Tony Printezis wrote: >> Paul, >> >> Paul Hohensee wrote: >> >>> I would. I'd use "SurvivorPercent" though, not "SurvivorPerc". The >>> latter >>> sounds like a bonus you get for surviving. :) >>> >> I was trying to be a be concise, but sure Percent is fine. >> >>> Or maybe just add "SurvivorSize" and "MaxSurvivorSize", like we have >>> "NewSize" and "MaxNewSize". That'd be exact, unlike either a percent >>> or a ratio. >>> >> Well, the problem with using specific sizes is that, if you resize your >> young gen (in this case), the survivor size will also have to change. >> Maybe, using percentages will handle that case a bit better (even though >> I can think of some cases when you want to fix the survivor size but >> maybe vary the eden size). >> >>> btw, we seem to use the term "Ratio" to mean both a genuine ratio _and_ a >>> percent. E.g., "SurvivorRatio" is a genuine ratio, but >>> "MinHeapFreeRatio" >>> is a percent. >>> >> Yep. Unfortunately, we cannot change the meaning of MinHeapFreeRatio (to >> keep backwards compatibility). So, maybe, it'd be best to introduce a >> new parameter, say MinHeapFreePercent, with the same semantics as >> MinHeapFreeRatio, as a way to start migrating users to the correct one. >> >> Tony >> >>> Tony Printezis wrote: >>> >>>> Hi all, >>>> >>>> I personally don't like the *Ratio parameters (e.g., >>>> -XX:SurvivorRatio=) as I don't think they are very intuitive to >>>> set. I've heard the same from a few customers too. Would most people >>>> prefer parameters based on percentages (e.g., -XX:SurvivorPerc=, >>>> where 0 <= <= 100) instead? >>>> >>>> Tony >>>> >>>> >>>> >> >> -- --------------------------------------------------------------------- | Tony Printezis, Staff Engineer | Sun Microsystems Inc. | | | MS UBUR02-311 | | e-mail: tony.printezis at sun.com | 35 Network Drive | | office: +1 781 442 0998 (x20998) | Burlington, MA 01803-2756, USA | --------------------------------------------------------------------- e-mail client: Thunderbird (Linux) _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From Paul.Hohensee at Sun.COM Wed Aug 13 12:14:01 2008 From: Paul.Hohensee at Sun.COM (Paul Hohensee) Date: Wed, 13 Aug 2008 15:14:01 -0400 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A330F3.4070509@sun.com> References: <48A330F3.4070509@sun.com> Message-ID: <48A33279.4050405@sun.com> I would. I'd use "SurvivorPercent" though, not "SurvivorPerc". The latter sounds like a bonus you get for surviving. :) Or maybe just add "SurvivorSize" and "MaxSurvivorSize", like we have "NewSize" and "MaxNewSize". That'd be exact, unlike either a percent or a ratio. btw, we seem to use the term "Ratio" to mean both a genuine ratio _and_ a percent. E.g., "SurvivorRatio" is a genuine ratio, but "MinHeapFreeRatio" is a percent. Paul Tony Printezis wrote: > Hi all, > > I personally don't like the *Ratio parameters (e.g., > -XX:SurvivorRatio=) as I don't think they are very intuitive to set. > I've heard the same from a few customers too. Would most people prefer > parameters based on percentages (e.g., -XX:SurvivorPerc=, where 0 <= > <= 100) instead? > > Tony > > _______________________________________________ hotspot-gc-use mailing list hotspot-gc-use at openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use From john.pampuch at sun.com Wed Aug 13 13:32:46 2008 From: john.pampuch at sun.com (John Pampuch) Date: Wed, 13 Aug 2008 13:32:46 -0700 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A3361C.3070105@sun.com> References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> Message-ID: <48A344EE.3010901@sun.com> An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20080813/28a80d99/attachment.html -------------- 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 Y.S.Ramakrishna at Sun.COM Wed Aug 13 14:50:20 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Wed, 13 Aug 2008 14:50:20 -0700 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A344EE.3010901@sun.com> References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> <48A344EE.3010901@sun.com> Message-ID: Hi Tony -- > I personally don't like the *Ratio parameters (e.g., > -XX:SurvivorRatio=) as I don't think they are very intuitive to > set. I've heard the same from a few customers too. Would most people > prefer parameters based on percentages (e.g., -XX:SurvivorPerc=, > where 0 <= <= 100) instead? One of the (other) disadvantages (lacking floating point options, do we have them now?) of *Ratio specs was that the the smallest ratio you could specify was 1:1. What about allowing percent specs to exceed 100 in appropriate cases where it might make sense? kevlar suit donned :-) -- ramki _______________________________________________ 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 sun.com Thu Aug 14 07:40:02 2008 From: tony.printezis at sun.com (Tony Printezis) Date: Thu, 14 Aug 2008 10:40:02 -0400 Subject: Who hates the *Ratio parameters? In-Reply-To: References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> <48A344EE.3010901@sun.com> Message-ID: <48A443C2.3080205@sun.com> Ramki, See below. Y Srinivas Ramakrishna wrote: > Hi Tony -- > > >> I personally don't like the *Ratio parameters (e.g., >> -XX:SurvivorRatio=) as I don't think they are very intuitive to >> set. I've heard the same from a few customers too. Would most people >> prefer parameters based on percentages (e.g., -XX:SurvivorPerc=, >> where 0 <= <= 100) instead? >> > > One of the (other) disadvantages (lacking floating point options, do > we have them now?) Actually, we do have floating parameters now (I learned something new today!). I just checked and also did a quick test to make sure it works; it seems to. You can now set something like: product(double, SurvivorPercentage, 13.5 \ "Percentage of survivor space vs. young generation size") \ So, the argument that percentages cannot be small enough, if they are only up to 1%, goes out of the window. > of *Ratio specs was that the the smallest ratio you > could specify was 1:1. What about allowing percent specs to exceed 100 > in appropriate cases where it might make sense? > Like, for example, application throughput goal to be 150%, right? :-) > kevlar suit donned :-) > :-) Tony > _______________________________________________ > hotspot-gc-use mailing list > hotspot-gc-use at openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use > -- ---------------------------------------------------------------------- | Tony Printezis, Staff Engineer | Sun Microsystems Inc. | | | MS BUR02-311 | | e-mail: tony.printezis at sun.com | 35 Network Drive | | office: +1 781 442 0998 (x20998) | Burlington, MA01803-0902, USA | ---------------------------------------------------------------------- e-mail client: Thunderbird (Solaris) _______________________________________________ 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 Sun.COM Thu Aug 14 09:53:01 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Thu, 14 Aug 2008 09:53:01 -0700 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A443C2.3080205@sun.com> References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> <48A344EE.3010901@sun.com> <48A443C2.3080205@sun.com> Message-ID: > > of *Ratio specs was that the the smallest ratio you > > could specify was 1:1. What about allowing percent specs to exceed 100 > > in appropriate cases where it might make sense? > > > Like, for example, application throughput goal to be 150%, right? :-) That, of course, which would be hugely popular with most of our Java users, :-) but, more specifically, would having, for example, a survivor size that is greater than Eden size (for example, via SurvivorPercentage=150) make sense under some scenario of performance objectives/constraints? -- ramki _______________________________________________ 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 sun.com Thu Aug 14 09:58:38 2008 From: tony.printezis at sun.com (Tony Printezis) Date: Thu, 14 Aug 2008 12:58:38 -0400 Subject: Who hates the *Ratio parameters? In-Reply-To: References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> <48A344EE.3010901@sun.com> <48A443C2.3080205@sun.com> Message-ID: <48A4643E.8080903@sun.com> Ramki, See below. Y Srinivas Ramakrishna wrote: > >>> of *Ratio specs was that the the smallest ratio you >>> could specify was 1:1. What about allowing percent specs to exceed 100 >>> in appropriate cases where it might make sense? >>> >>> >> Like, for example, application throughput goal to be 150%, right? :-) >> > > That, of course, which would be hugely popular with most of our Java users, :-) > :-) > but, more specifically, would having, for example, a survivor size > that is greater than Eden size (for example, via SurvivorPercentage=150) > make sense under some scenario of performance objectives/constraints? > Hmmm.... interesting. I had somehow assumed that the survivor percentage would be with respect to the young gen size, not with respect to the eden. I'm not sure which one is best. But, yes, you're right; we should allow for the possibility of the survivors being larger than the eden. Additionally, someone, in a private communication (you know who you are!), also recommended that we actually provide EdenPercent instead of SurvivorPercent. Again, I'm not sure what the pros / cons are. Tony -- ---------------------------------------------------------------------- | Tony Printezis, Staff Engineer | Sun Microsystems Inc. | | | MS BUR02-311 | | e-mail: tony.printezis at sun.com | 35 Network Drive | | office: +1 781 442 0998 (x20998) | Burlington, MA01803-0902, USA | ---------------------------------------------------------------------- e-mail client: Thunderbird (Solaris) _______________________________________________ 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 Sun.COM Thu Aug 14 10:04:27 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Thu, 14 Aug 2008 10:04:27 -0700 Subject: Who hates the *Ratio parameters? In-Reply-To: <48A4643E.8080903@sun.com> References: <48A330F3.4070509@sun.com> <48A33279.4050405@sun.com> <48A3361C.3070105@sun.com> <48A344EE.3010901@sun.com> <48A443C2.3080205@sun.com> <48A4643E.8080903@sun.com> Message-ID: > > but, more specifically, would having, for example, a survivor size > > that is greater than Eden size (for example, via SurvivorPercentage=150) > > make sense under some scenario of performance objectives/constraints? > > > Hmmm.... interesting. I had somehow assumed that the survivor > percentage > would be with respect to the young gen size, not with respect to the > eden. I'm not sure which one is best. But, yes, you're right; we > should > allow for the possibility of the survivors being larger than the eden. Yes, I agree that SurvivorPercent = SurvivorSize/YoungGenSize makes more sense. Sorry for the confusion. -- ramki > > Additionally, someone, in a private communication (you know who you > are!), also recommended that we actually provide EdenPercent instead > of > SurvivorPercent. Again, I'm not sure what the pros / cons are. > > Tony > > -- > ---------------------------------------------------------------------- > | Tony Printezis, Staff Engineer | Sun Microsystems Inc. | > | | MS BUR02-311 | > | e-mail: tony.printezis at sun.com | 35 Network Drive | > | office: +1 781 442 0998 (x20998) | Burlington, MA01803-0902, USA | > ---------------------------------------------------------------------- > e-mail client: Thunderbird (Solaris) > > _______________________________________________ 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 sun.com Thu Aug 14 21:42:59 2008 From: y.s.ramakrishna at sun.com (y.s.ramakrishna at sun.com) Date: Fri, 15 Aug 2008 04:42:59 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 7 new changesets Message-ID: <20080815044314.475B7D062@hg.openjdk.java.net> Changeset: 6f17a7c9f8b4 Author: xlu Date: 2008-08-01 15:12 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/6f17a7c9f8b4 6719981: Update Hotspot Windows os_win32 for windows XP 64 bit and windows 2008 Reviewed-by: dholmes, kamg ! src/os/windows/vm/os_windows.cpp Changeset: f7e6d42d9323 Author: xlu Date: 2008-08-01 15:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/f7e6d42d9323 6618886: Anonymous objects can be destructed immediately and so should not be used Reviewed-by: dholmes, kamg ! src/os/solaris/vm/osThread_solaris.cpp Changeset: 4fa67937726c Author: trims Date: 2008-08-10 13:13 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/4fa67937726c Merge - agent/src/share/lib/jlfgr-1_0.jar - agent/src/share/lib/maf-1_0.jar Changeset: b727c32788a9 Author: trims Date: 2008-08-01 18:51 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/b727c32788a9 6732819: Turn off compressed oops by default for now Summary: Workaround for CompOops bug Reviewed-by: coleenp ! src/share/vm/runtime/arguments.cpp Changeset: 585535ec8a14 Author: xdono Date: 2008-08-04 13:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/585535ec8a14 Added tag jdk7-b32 for changeset b727c32788a9 ! .hgtags Changeset: aa8f54688692 Author: trims Date: 2008-08-10 21:31 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/aa8f54688692 Merge - agent/src/share/lib/jlfgr-1_0.jar - agent/src/share/lib/maf-1_0.jar ! src/share/vm/runtime/arguments.cpp Changeset: 79276d1b7e50 Author: trims Date: 2008-08-10 21:58 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/79276d1b7e50 6735720: Bump the HS14 build number to 03 Summary: Update Hotspot 14 build number to 03 Reviewed-by: jcoomes ! make/hotspot_version From y.s.ramakrishna at sun.com Fri Aug 15 05:06:04 2008 From: y.s.ramakrishna at sun.com (y.s.ramakrishna at sun.com) Date: Fri, 15 Aug 2008 12:06:04 +0000 Subject: hg: jdk7/hotspot-gc/hotspot: 6722112: CMS: Incorrect encoding of overflown object arrays during concurrent precleaning Message-ID: <20080815120606.6D1BDD08A@hg.openjdk.java.net> Changeset: 9199f248b0ee Author: ysr Date: 2008-08-14 17:58 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/9199f248b0ee 6722112: CMS: Incorrect encoding of overflown object arrays during concurrent precleaning Summary: When an object array overflows during precleaning, we should have been marking the entire array dirty, not just its first card. Reviewed-by: jmasa, poonam, tonyp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp From Keith.Holdaway at sas.com Mon Aug 18 05:45:24 2008 From: Keith.Holdaway at sas.com (Keith Holdaway) Date: Mon, 18 Aug 2008 08:45:24 -0400 Subject: JDK 5.0 Native Heap Issues? Message-ID: <304E9E55F6A4BE4B910C2437D4D1B4960B22106559@MERCMBX14.na.sas.com> Hi, We have been running an endurance test suite with LoadRunner against JDK 5.0 u14 with the following VM arguments: et JAVA_OPTS=%JAVA_OPTS% -Xms1000m -Xmx1000m -XX:PermSize=87m -XX:MaxPermSize=87m -Xss96k -XX:-UseTLAB -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:NewSize=128m -XX:MaxNewSize=128m -Dcom.sun.management.jmxremote -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true -Dsas.svcs.http.max.connections=50 And we keep seeing the following error message after 15 hours: Exception java.lang.OutOfMemoryError: requested 655360 bytes for GrET* in C:/BUILD_AREA/jdk1.5.0_15/hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap space? I suggested that this error is the result of native heap issues - fragmentation perhaps, and so reducing the -Xmx and -Xss and MaxPermGen would enable more native heap. This is a 32 bit Windows box, and the /3GB switch is turned on. The tester has added the following two VM args to enable an improvement in CMS usage, since it seems our application allocates at such a rate that CMS is overrun and Full GCs interrupt the CMS algorithm: -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 But he also changed the JDK to 6.0 u7, and now the endurance test has run for 25 hrs? We are not sure if the success is contributed to JDK6 or to -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 Any ideas? Also, is the -XX:+UseCMSCompactAtFullCollection a default behaviour for JDK 5.0? thanks keith _ _______________________________________________ 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 Sun.COM Mon Aug 18 06:55:21 2008 From: Jon.Masamitsu at Sun.COM (Jon Masamitsu) Date: Mon, 18 Aug 2008 06:55:21 -0700 Subject: JDK 5.0 Native Heap Issues? In-Reply-To: <304E9E55F6A4BE4B910C2437D4D1B4960B22106559@MERCMBX14.na.sas.com> References: <304E9E55F6A4BE4B910C2437D4D1B4960B22106559@MERCMBX14.na.sas.com> Message-ID: <48A97F49.7060609@sun.com> Keith, One of the changes made in jdk6 was that the "always promote" policy of CMS (i.e., very small survivor spaces and maximum tenuring threshold) was change so as to better utilize the young gen to filter out should lived data. The change is described in http://java.sun.com/javase/6/webnotes/adoption/adoptionguide.html Search for the new flag CMSUseOldDefaults. I've seen this change help in terms of slowing the CMS generation growth but your suggestion of a lower initiating occupancy would do something similar in a different way. My guess though is that the jdk6 changes are helping more. UseCMSCompactAtFullCollection is on by default in jdk5. Jon Keith Holdaway wrote On 08/18/08 05:45,: >Hi, > >We have been running an endurance test suite with LoadRunner against JDK 5.0 u14 with the following VM arguments: > >et JAVA_OPTS=%JAVA_OPTS% -Xms1000m -Xmx1000m -XX:PermSize=87m -XX:MaxPermSize=87m -Xss96k -XX:-UseTLAB -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:NewSize=128m -XX:MaxNewSize=128m -Dcom.sun.management.jmxremote -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true -Dsas.svcs.http.max.connections=50 > >And we keep seeing the following error message after 15 hours: > >Exception java.lang.OutOfMemoryError: requested 655360 bytes for GrET* in C:/BUILD_AREA/jdk1.5.0_15/hotspot\src\share\vm\utilities\growableArray.cpp. Out of swap space? > >I suggested that this error is the result of native heap issues - fragmentation perhaps, and so reducing the -Xmx and -Xss and MaxPermGen would enable more native heap. This is a 32 bit Windows box, and the /3GB switch is turned on. > >The tester has added the following two VM args to enable an improvement in CMS usage, since it seems our application allocates at such a rate that CMS is overrun and Full GCs interrupt the CMS algorithm: > >-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 > >But he also changed the JDK to 6.0 u7, and now the endurance test has run for 25 hrs? > >We are not sure if the success is contributed to JDK6 or to -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 > >Any ideas? > >Also, is the -XX:+UseCMSCompactAtFullCollection a default behaviour for JDK 5.0? > >thanks > >keith >_ >_______________________________________________ >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 Sun.COM Mon Aug 18 09:11:37 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Mon, 18 Aug 2008 09:11:37 -0700 Subject: 1.4.2 PrintFLSStatistics Output In-Reply-To: References: Message-ID: Hi Neeraj -- > We are using Java 1.4.2_17 (64-bit mode) to run long running server > application on solaris using following java options > > -server -d64 -XX:+HandlePromotionFailure > -XX:CMSInitiatingOccupancyFraction=70 -XX:NewSize=256m -XX:MaxNewSize=2 > 56m -XX:SurvivorRatio=10 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC > -XX:+PrintTenuringDistribution -XX:PrintCMSStatistics=1 -XX:+PrintGCDetails > -XX:+Pri > ntGCTimeStamps -XX:PrintFLSStatistics=1 -XX:+PrintHeapAtGC > -XX:+PrintClassHistogram -XX:PermSize=96m -XX:MaxPermSize=96m > -XX:MaxTenuringThreshold=5 -X > ms6g -Xmx6g -Xss256k > > In order to isolate a fragmentation issue, we started using > -XX:PrintFLSStatistics option to see if the fragmentation is really taking > place. However, the output looks quite confusing. I have following specific > queries around this (please refer to the GC logs given below): > > 1. As per GC stats, around 5 GB of memory is taken by the application > so > there should be ~0.75 GB free in tenured generation but BinaryTreeDictionary > statistics show only around 38 MB of memory in Free List Trees? Where > have > the rest of 700 MB gone? The free space in the old generation is kept mainly in two kinds of free lists. Free blocks larger than some threshold (i think 1 KB, but am not sure without checking the code) are kept in a binary tree indexed by size and printed as part of the "BinaryTreeDictionary". Free blocks smaller than that threshold are kept in an array of free lists indexed by size. Since most objects created by Java programs are usually smaller than the 1 KB threshold, you will usually find that most of the dynamic footprint in the old generation is in the smnaller blocks. > > 2. Going by these stats, the total free space is only 349438 words > (~2.8 MB) > but still minor collections succeed (before eventually getting promotion > failed error). Where does the free space to provide Young Generation > Guarantee (~240 MB) come from? See above; the majority of the churn is expected to be in the smaller blocks, with the larger ones providing a buffer for volatility in the demand for the smaller blocks (plus the occasional large object or two) -- provided the free block demand estimation and coalescing is working OK. > > 3. Why there are two sets of BinaryTreeDictionary stats? There is one set for each of the Old Generation and the Perm Generation, both of which are marked by the CMS collector. (But perm generation collection requires an additional flag or two.) > > Any help will be greatly appreciated. Thanks in advance. Hope that helps, and feel free to ask more questions, and/or study the associated code in OpenJDK 7 (src/share/vm/gc_implementation/concurrentMarkSweep). The option -XX:PrintFLSStatistics=2 produces (at much higher cost) stats related to the smaller free blocks kept in the array(s) indexed by size as well. -- ramki > > Neeraj > > =======================================JVM GC > Logs==================================================== > > 40330.741: [ParNewBefore GC: > Before GC: > > Desired survivor size 11173888 bytes, new threshold 2 (max 5) > - age 1: 7549224 bytes, 7549224 total > - age 2: 5868416 bytes, 13417640 total > : 231488K->13203K(240320K), 0.4537259 secs] > 5235545K->5023066K(6269632K)Statistics for BinaryTreeDictionary: > ------------------------------------ > Total Free Space: 349438 > Max Chunk Size: 349438 > Number of Blocks: 1 > Av. Block Size: 349438 > Tree Height: 1 > Statistics for BinaryTreeDictionary: > ------------------------------------ > Total Free Space: 4440679 > Max Chunk Size: 4440679 > Number of Blocks: 1 > Av. Block Size: 4440679 > Tree Height: 1 > Heap after GC invocations=2396: > Heap > par new generation total 240320K, used 13203K [0xfffffffdefc00000, > 0xfffffffdffc00000, 0xfffffffdffc00000) > eden space 218496K, 0% used [0xfffffffdefc00000, 0xfffffffdefc00000, > 0xfffffffdfd160000) > from space 21824K, 60% used [0xfffffffdfd160000, 0xfffffffdfde44d50, > 0xfffffffdfe6b0000) > to space 21824K, 0% used [0xfffffffdfe6b0000, 0xfffffffdfe6b0000, > 0xfffffffdffc00000) > concurrent mark-sweep generation total 6029312K, used 5009862K > [0xfffffffdffc00000, 0xffffffff6fc00000, 0xffffffff6fc00000) > concurrent-mark-sweep perm gen total 98304K, used 63210K > [0xffffffff6fc00000, 0xffffffff75c00000, 0xffffffff75c00000) > } , 0.4557118 secs] > After GC: > After GC: > 40344.958: [GC {Heap before GC invocations=2396: > Heap > par new generation total 240320K, used 231699K [0xfffffffdefc00000, > 0xfffffffdffc00000, 0xfffffffdffc00000) > eden space 218496K, 100% used [0xfffffffdefc00000, 0xfffffffdfd160000, > 0xfffffffdfd160000) > from space 21824K, 60% used [0xfffffffdfd160000, 0xfffffffdfde44d50, > 0xfffffffdfe6b0000) > to space 21824K, 0% used [0xfffffffdfe6b0000, 0xfffffffdfe6b0000, > 0xfffffffdffc00000) > concurrent mark-sweep generation total 6029312K, used 5008129K > [0xfffffffdffc00000, 0xffffffff6fc00000, 0xffffffff6fc00000) > concurrent-mark-sweep perm gen total 98304K, used 63210K > [0xffffffff6fc00000, 0xffffffff75c00000, 0xffffffff75c00000) > Statistics for BinaryTreeDictionary: > ------------------------------------ > Total Free Space: 353702 > Max Chunk Size: 349438 > Number of Blocks: 9 > Av. Block Size: 39300 > Tree Height: 5 > Statistics for BinaryTreeDictionary: > ------------------------------------ > Total Free Space: 4440679 > Max Chunk Size: 4440679 > Number of Blocks: 1 > Av. Block Size: 4440679 > Tree Height: 1 > 40344.960: [ParNewBefore GC: > Before GC: > (promotion failed) > Desired survivor size 11173888 bytes, new threshold 2 (max 5) > - age 1: 7604792 bytes, 7604792 total > - age 2: 5978704 bytes, 13583496 total > : 231699K->231699K(240320K), 1.2985705 secs]40346.259: [CMS40358.345: > [CMS-concurrent-sweep: 25.860/27.699 secs] > (CMS-concurrent-sweep yielded 2 times) > (concurrent mode failure)[Unloading class > sun.reflect.GeneratedSerializationConstructorAccessor93] > [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor30] > [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor55] > _______________________________________________ > 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 Sun.COM Mon Aug 18 14:29:27 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Mon, 18 Aug 2008 14:29:27 -0700 Subject: JDK 5.0 Native Heap Issues? In-Reply-To: <304E9E55F6A4BE4B910C2437D4D1B4960B22106559@MERCMBX14.na.sas.com> References: <304E9E55F6A4BE4B910C2437D4D1B4960B22106559@MERCMBX14.na.sas.com> Message-ID: Hi Keith -- To add to Jon's response, native heap issues would typically tend to be orthogonal to the frequency or otherwise of Java heap collections. (That's in theory, but for instance, native heap leaks from for example Java full heap collections can cause slow leaks in native heap memory of course; but see more below.) The native heap leak might also come from something else in the JVM which may have gone away when you switched the JDK's. It is quite unlikely, though, that a native heap memory leak is tied explicitly to the behaviour of CMS and of the frequency of full heap collections. There is however another way in which Java heap collections may relate to native heap pressure, related to what Jon was saying. In JDK 6 CMS, as Jon stated, all scavenge-survivors are not immediately promoted into the old generation. That means that typically a piece of dead space (i.e. occupied by a dead object) is likely recycled sooner than with the default settings in JDK 1.5 CMS, where objects may get prematurely promoted and then immediately die, but languish uncollected in the old generation because of the realtive infrequency of those collections vis-a-vis scavenges. The fact that unreachable objects are identified sooner in JDK 6 CMS/default settings (when they die in the young generation) means that, if there are associated finalizers or other kinds of weak reference objects, then those are enqueued sooner and any post-mortem clean-ups (including potentially any associated native storage) might likely get run sooner (thus possibly reducing the native heap footprint as well). Do you believe you may have in your application or in associated 3rd party libraries native memory or resources potentially tied to objects requiring finalization or other clean-up? If so, you might want to monitor that churn/activity. -- ramki ----- Original Message ----- From: Keith Holdaway Date: Monday, August 18, 2008 5:45 am Subject: JDK 5.0 Native Heap Issues? To: Y Srinivas Ramakrishna , "Jones, Doug H" Cc: "hotspot-gc-use at openjdk.java.net" > Hi, > > We have been running an endurance test suite with LoadRunner against > JDK 5.0 u14 with the following VM arguments: > > et JAVA_OPTS=%JAVA_OPTS% -Xms1000m -Xmx1000m -XX:PermSize=87m > -XX:MaxPermSize=87m -Xss96k -XX:-UseTLAB -XX:+UseConcMarkSweepGC > -XX:+DisableExplicitGC -XX:NewSize=128m -XX:MaxNewSize=128m > -Dcom.sun.management.jmxremote -Dsun.rmi.dgc.client.gcInterval=3600000 > -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.awt.headless=true -Dsas.svcs.http.max.connections=50 > > And we keep seeing the following error message after 15 hours: > > Exception java.lang.OutOfMemoryError: requested 655360 bytes for GrET* > in > C:/BUILD_AREA/jdk1.5.0_15/hotspot\src\share\vm\utilities\growableArray.cpp. > Out of swap space? > > I suggested that this error is the result of native heap issues - > fragmentation perhaps, and so reducing the -Xmx and -Xss and > MaxPermGen would enable more native heap. This is a 32 bit Windows > box, and the /3GB switch is turned on. > > The tester has added the following two VM args to enable an > improvement in CMS usage, since it seems our application allocates at > such a rate that CMS is overrun and Full GCs interrupt the CMS algorithm: > > -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 > > But he also changed the JDK to 6.0 u7, and now the endurance test has > run for 25 hrs? > > We are not sure if the success is contributed to JDK6 or to > -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=40 > > Any ideas? > > Also, is the -XX:+UseCMSCompactAtFullCollection a default behaviour > for JDK 5.0? > > thanks > > keith > _ _______________________________________________ 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 Sun.COM Tue Aug 19 10:42:33 2008 From: Y.S.Ramakrishna at Sun.COM (Y Srinivas Ramakrishna) Date: Tue, 19 Aug 2008 10:42:33 -0700 Subject: 1.4.2 PrintFLSStatistics Output In-Reply-To: References: Message-ID: Hi Neeraj -- Good question; this has come up in another recent discussion on this list. > I still have a query on your answer to question #2. As I understand, > for a > YG promotion to be successful GC needs a contiguous memory chunk equal > to > the sum of sizes of Eden and From space which comes out to be approx. > 230 MB > in our case. The total free space in the "BinaryTreeDictionary" containing > larger blocks is only ~2.8 MB but the promotions are still succeeding. > > My question is: *where the GC is getting the contiguous memory chunk > of 230 > MB from?* That was indeed the old constraint in the early versions of 1.4.2, which was fixed in some early version of 5.0 (if i recall correctly) so that we could handle "promotion failure" (where mid-scavenge we discover that we have no space in the old gen to promote a live object from the young gen). That code was subsequently also backported to some version of 1.4.2, probably 1.4.2_11 or later (i am not sure precisely which version, but can find out if you really care). As a result, (at least) in 1.4.2_17, in fact, there isn't such a restriction, and scavenges will occur even in the absence of the pessimal "full promotion guarantee". -- ramki _______________________________________________ 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 sun.com Tue Aug 19 17:15:34 2008 From: john.coomes at sun.com (john.coomes at sun.com) Date: Wed, 20 Aug 2008 00:15:34 +0000 Subject: hg: jdk7/hotspot-gc: 6 new changesets Message-ID: <20080820001535.00919D4BE@hg.openjdk.java.net> Changeset: 5ceaca28a876 Author: xdono Date: 2008-08-04 13:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/5ceaca28a876 Added tag jdk7-b32 for changeset 64da805be725 ! .hgtags Changeset: 55b2666e52e1 Author: ohair Date: 2008-08-06 14:57 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/55b2666e52e1 6728161: Add SKIP_BOOT_CYCLE feature to create boot jdk and use it during build Reviewed-by: tbell ! Makefile ! make/Defs-internal.gmk ! make/jprt.config ! make/jprt.gmk Changeset: 844619bd3580 Author: ohair Date: 2008-08-06 16:06 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/844619bd3580 6724669: JDK7: Official change to Sun Studio 12 compilers on Solaris Reviewed-by: tbell ! README-builds.html ! make/jprt.config Changeset: 746ca6b12c56 Author: ohair Date: 2008-08-06 16:39 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/746ca6b12c56 Merge ! README-builds.html ! make/jprt.config Changeset: bb1ef4ee3d2c Author: xdono Date: 2008-08-12 15:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/bb1ef4ee3d2c Merge Changeset: 7aa4f433229a Author: xdono Date: 2008-08-14 09:26 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/rev/7aa4f433229a Added tag jdk7-b33 for changeset bb1ef4ee3d2c ! .hgtags From john.coomes at sun.com Tue Aug 19 17:16:00 2008 From: john.coomes at sun.com (john.coomes at sun.com) Date: Wed, 20 Aug 2008 00:16:00 +0000 Subject: hg: jdk7/hotspot-gc/corba: 9 new changesets Message-ID: <20080820001608.F0453D4C3@hg.openjdk.java.net> Changeset: f07251088084 Author: xdono Date: 2008-08-04 13:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/f07251088084 Added tag jdk7-b32 for changeset 80a0f46a6203 ! .hgtags Changeset: e9dad83f035c Author: ohair Date: 2008-08-01 13:37 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/e9dad83f035c 6732815: CORBA_2_3 java sources not explicitly compiled Reviewed-by: tbell ! make/org/omg/CORBA/Makefile Changeset: 41c585204e91 Author: tbell Date: 2008-08-07 09:40 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/41c585204e91 Merge Changeset: 6e0cf0dc59e5 Author: ohair Date: 2008-08-06 14:30 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/6e0cf0dc59e5 6734545: Corrections to missing explicit corba sources on javac compile lines Reviewed-by: tbell ! make/com/sun/corba/minclude/com_sun_corba_se_impl_dynamicany.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_interceptor.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_transport.jmk ! make/com/sun/corba/minclude/org_omg_CosNaming.jmk ! make/com/sun/corba/minclude/org_omg_DynamicAny.jmk ! make/com/sun/corba/minclude/org_omg_PortableInterceptor.jmk ! make/com/sun/corba/se/sources/Makefile ! make/javax/xa/Makefile ! make/org/omg/CORBA/Makefile Changeset: 33486187d718 Author: ohair Date: 2008-08-06 16:08 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/33486187d718 6724669: JDK7: Official change to Sun Studio 12 compilers on Solaris Reviewed-by: tbell ! make/common/shared/Compiler-sun.gmk ! make/jprt.config Changeset: 6a5b9d2f8b20 Author: xdono Date: 2008-08-12 15:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/6a5b9d2f8b20 Merge Changeset: 05bf6aacc874 Author: xdono Date: 2008-08-14 09:26 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/05bf6aacc874 Added tag jdk7-b33 for changeset 6a5b9d2f8b20 ! .hgtags Changeset: e0e03ab25da0 Author: tbell Date: 2008-08-07 18:00 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/e0e03ab25da0 Merge Changeset: 0a812b9824e5 Author: tbell Date: 2008-08-14 22:14 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/corba/rev/0a812b9824e5 Merge From john.coomes at sun.com Tue Aug 19 17:17:44 2008 From: john.coomes at sun.com (john.coomes at sun.com) Date: Wed, 20 Aug 2008 00:17:44 +0000 Subject: hg: jdk7/hotspot-gc/jaxp: 2 new changesets Message-ID: <20080820001748.93C3CD4C8@hg.openjdk.java.net> Changeset: 95375835527f Author: xdono Date: 2008-08-04 13:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/95375835527f Added tag jdk7-b32 for changeset 400a5ee432cc ! .hgtags Changeset: 01facdf8cabd Author: xdono Date: 2008-08-14 09:26 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxp/rev/01facdf8cabd Added tag jdk7-b33 for changeset 95375835527f ! .hgtags From john.coomes at sun.com Tue Aug 19 17:18:15 2008 From: john.coomes at sun.com (john.coomes at sun.com) Date: Wed, 20 Aug 2008 00:18:15 +0000 Subject: hg: jdk7/hotspot-gc/jaxws: 2 new changesets Message-ID: <20080820001819.344BCD4CD@hg.openjdk.java.net> Changeset: 6dcbcfb9551a Author: xdono Date: 2008-08-04 13:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/6dcbcfb9551a Added tag jdk7-b32 for changeset e6daca2eced9 ! .hgtags Changeset: 7a9f629cd957 Author: xdono Date: 2008-08-14 09:26 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jaxws/rev/7a9f629cd957 Added tag jdk7-b33 for changeset 6dcbcfb9551a ! .hgtags From john.coomes at sun.com Tue Aug 19 17:20:15 2008 From: john.coomes at sun.com (john.coomes at sun.com) Date: Wed, 20 Aug 2008 00:20:15 +0000 Subject: hg: jdk7/hotspot-gc/jdk: 68 new changesets Message-ID: <20080820003358.9D636D4D2@hg.openjdk.java.net> Changeset: 89d30b258517 Author: ohair Date: 2008-07-16 09:51 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/89d30b258517 6548261: Use of SE in make/common/Defs-windows.gmk Reviewed-by: darcy ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/shared/Defs.gmk Changeset: 7754f0f4cf97 Author: xdono Date: 2008-07-25 08:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/7754f0f4cf97 Merge Changeset: c51121419e30 Author: ohair Date: 2008-07-27 18:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c51121419e30 6727683: Cleanup use of COMPILER_WARNINGS_FATAL in makefiles Reviewed-by: tbell ! make/com/sun/java/pack/Makefile ! make/com/sun/security/auth/module/Makefile ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/shared/Compiler-gcc.gmk ! make/common/shared/Defs-java.gmk ! make/common/shared/Platform.gmk ! make/java/fdlibm/Makefile ! make/java/hpi/windows/Makefile ! make/java/java/Makefile ! make/java/java_crw_demo/Makefile ! make/java/java_hprof_demo/Makefile ! make/java/jli/Makefile ! make/java/net/Makefile ! make/java/nio/Makefile ! make/java/npt/Makefile ! make/java/verify/Makefile ! make/java/zip/Makefile ! make/jpda/back/Makefile ! make/jpda/transport/shmem/Makefile ! make/jpda/transport/socket/Makefile ! make/sun/cmm/kcms/Makefile ! make/sun/font/Makefile ! make/sun/font/t2k/Makefile ! make/sun/jdbc/Makefile ! make/sun/jpeg/Makefile Changeset: 12a0d0a1bb65 Author: xdono Date: 2008-08-04 13:45 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/12a0d0a1bb65 Added tag jdk7-b32 for changeset c51121419e30 ! .hgtags Changeset: 8f1a1b2f77a3 Author: igor Date: 2008-05-28 20:06 +0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8f1a1b2f77a3 6587560: OpenJDK problem handling bitmaps returned when LCD text is requested Reviewed-by: bae, prr ! src/share/native/sun/font/freetypeScaler.c Changeset: 3c4fc5111ff2 Author: lana Date: 2008-06-05 14:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3c4fc5111ff2 Merge Changeset: f0ede391c615 Author: prr Date: 2008-06-12 13:17 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/f0ede391c615 6378099: RFE: Use libfontconfig to create/synthesise a fontconfig.properties Reviewed-by: tdv, igor ! make/sun/headless/mapfile-vers ! make/sun/xawt/mapfile-vers ! src/share/classes/sun/awt/FontConfiguration.java ! src/share/classes/sun/font/FontManager.java ! src/share/classes/sun/java2d/SunGraphicsEnvironment.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java + src/solaris/classes/sun/font/FcFontConfiguration.java ! src/solaris/native/sun/awt/fontconfig.h ! src/solaris/native/sun/awt/fontpath.c ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Changeset: 9fae0ea75985 Author: srl Date: 2008-06-17 18:38 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/9fae0ea75985 6711377: test/java/awt/font/TextLayout/VisibleAdvance.java missing GPL Reviewed-by: igor, prr ! test/java/awt/font/TextLayout/VisibleAdvance.java Changeset: 5755fe417a12 Author: jgodinez Date: 2008-06-23 13:00 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/5755fe417a12 6708509: print dialog is not displayed when default paper is custom Reviewed-by: tdv, prr ! src/windows/native/sun/windows/awt_PrintJob.cpp + test/java/awt/print/PrinterJob/PrintAWTImage.java + test/java/awt/print/PrinterJob/duke.gif Changeset: c1e0755434eb Author: igor Date: 2008-07-15 16:04 +0400 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c1e0755434eb 6720240: IOB exception when getting font metrics of hershey font Reviewed-by: bae, prr ! src/share/classes/sun/font/NullFontScaler.java Changeset: 3efc003bf097 Author: tdv Date: 2008-07-18 10:48 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3efc003bf097 6725214: D3D: forward-port the new pipeline from 6u10 Summary: Forward port of the new Direct3D 9 rendering pipeline from 6u10. Also includes fixes for 6690659 6689025 6658398 6596234. Reviewed-by: campbell, prr ! make/common/shared/Platform.gmk ! make/common/shared/Sanity.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/make.depend ! make/sun/awt/mapfile-mawt-vers ! make/sun/awt/mapfile-vers ! make/sun/awt/mapfile-vers-linux ! make/sun/font/FILES_c.gmk ! make/sun/font/Makefile ! make/sun/headless/mapfile-vers ! make/sun/jawt/make.depend ! make/sun/xawt/mapfile-vers ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/GraphicsDevice.java ! src/share/classes/java/awt/Robot.java ! src/share/classes/java/awt/image/DataBuffer.java ! src/share/classes/java/awt/peer/ComponentPeer.java ! src/share/classes/javax/swing/BufferStrategyPaintManager.java ! src/share/classes/sun/awt/NullComponentPeer.java ! src/share/classes/sun/awt/SubRegionShowable.java ! src/share/classes/sun/awt/image/SunVolatileImage.java ! src/share/classes/sun/awt/image/SunWritableRaster.java + src/share/classes/sun/awt/image/VSyncedBSManager.java ! src/share/classes/sun/awt/image/VolatileSurfaceManager.java ! src/share/classes/sun/font/StrikeCache.java + src/share/classes/sun/java2d/DestSurfaceProvider.java ! src/share/classes/sun/java2d/SunGraphics2D.java ! src/share/classes/sun/java2d/SunGraphicsEnvironment.java + src/share/classes/sun/java2d/Surface.java ! src/share/classes/sun/java2d/SurfaceData.java ! src/share/classes/sun/java2d/SurfaceDataProxy.java ! src/share/classes/sun/java2d/loops/BlitBg.java ! src/share/classes/sun/java2d/loops/GeneralRenderer.java ! src/share/classes/sun/java2d/opengl/OGLBufImgOps.java ! src/share/classes/sun/java2d/opengl/OGLContext.java ! src/share/classes/sun/java2d/opengl/OGLGraphicsConfig.java ! src/share/classes/sun/java2d/opengl/OGLPaints.java ! src/share/classes/sun/java2d/opengl/OGLRenderer.java ! src/share/classes/sun/java2d/opengl/OGLSurfaceData.java ! src/share/classes/sun/java2d/pipe/BufferedContext.java ! src/share/classes/sun/java2d/pipe/BufferedOpCodes.java ! src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java ! src/share/classes/sun/java2d/pipe/DrawImage.java + src/share/classes/sun/java2d/pipe/ParallelogramPipe.java + src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java + src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventListener.java + src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventNotifier.java + src/share/classes/sun/java2d/pipe/hw/AccelGraphicsConfig.java + src/share/classes/sun/java2d/pipe/hw/AccelSurface.java + src/share/classes/sun/java2d/pipe/hw/AccelTypedVolatileImage.java + src/share/classes/sun/java2d/pipe/hw/BufferedContextProvider.java + src/share/classes/sun/java2d/pipe/hw/ContextCapabilities.java + src/share/classes/sun/java2d/pipe/hw/ExtendedBufferCapabilities.java ! src/share/native/sun/font/AccelGlyphCache.c ! src/share/native/sun/font/AccelGlyphCache.h ! src/share/native/sun/font/sunFont.c + src/share/native/sun/java2d/ShaderList.c + src/share/native/sun/java2d/ShaderList.h ! src/share/native/sun/java2d/Trace.h ! src/share/native/sun/java2d/loops/BlitBg.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ! src/share/native/sun/java2d/opengl/OGLContext.c ! src/share/native/sun/java2d/opengl/OGLContext.h ! src/share/native/sun/java2d/opengl/OGLFuncs.h ! src/share/native/sun/java2d/opengl/OGLRenderQueue.c ! src/share/native/sun/java2d/opengl/OGLRenderQueue.h ! src/share/native/sun/java2d/opengl/OGLRenderer.c ! src/share/native/sun/java2d/opengl/OGLRenderer.h ! src/share/native/sun/java2d/opengl/OGLSurfaceData.c ! src/share/native/sun/java2d/opengl/OGLSurfaceData.h ! src/share/native/sun/java2d/pipe/BufferedMaskBlit.c ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java ! src/solaris/classes/sun/awt/X11GraphicsConfig.java ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/motif/MComponentPeer.java + src/solaris/classes/sun/java2d/BackBufferCapsProvider.java ! src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java ! src/solaris/classes/sun/java2d/opengl/GLXSurfaceData.java ! src/solaris/classes/sun/java2d/opengl/GLXVolatileSurfaceManager.java ! src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java ! src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.c ! src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c ! src/windows/classes/sun/awt/Win32GraphicsConfig.java ! src/windows/classes/sun/awt/Win32GraphicsDevice.java ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java ! src/windows/classes/sun/awt/windows/WToolkit.java + src/windows/classes/sun/java2d/ScreenUpdateManager.java ! src/windows/classes/sun/java2d/WindowsSurfaceManagerFactory.java - src/windows/classes/sun/java2d/d3d/D3DBackBufferSurfaceData.java ! src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java + src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java ! src/windows/classes/sun/java2d/d3d/D3DContext.java ! src/windows/classes/sun/java2d/d3d/D3DDrawImage.java + src/windows/classes/sun/java2d/d3d/D3DGraphicsConfig.java + src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java + src/windows/classes/sun/java2d/d3d/D3DMaskBlit.java ! src/windows/classes/sun/java2d/d3d/D3DMaskFill.java + src/windows/classes/sun/java2d/d3d/D3DPaints.java + src/windows/classes/sun/java2d/d3d/D3DRenderQueue.java ! src/windows/classes/sun/java2d/d3d/D3DRenderer.java + src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java ! src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java + src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java ! src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java + src/windows/classes/sun/java2d/d3d/D3DVolatileSurfaceManager.java ! src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java ! src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java ! src/windows/classes/sun/java2d/opengl/WGLVolatileSurfaceManager.java - src/windows/classes/sun/java2d/windows/DDBlitLoops.java - src/windows/classes/sun/java2d/windows/DDRenderer.java - src/windows/classes/sun/java2d/windows/DDScaleLoops.java ! src/windows/classes/sun/java2d/windows/GDIBlitLoops.java + src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java - src/windows/classes/sun/java2d/windows/Win32OffScreenSurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceDataProxy.java - src/windows/classes/sun/java2d/windows/WinBackBuffer.java - src/windows/classes/sun/java2d/windows/WinBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/WinVolatileSurfaceManager.java ! src/windows/classes/sun/java2d/windows/WindowsFlags.java + src/windows/native/sun/java2d/d3d/D3DBadHardware.h ! src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp + src/windows/native/sun/java2d/d3d/D3DBlitLoops.h + src/windows/native/sun/java2d/d3d/D3DBufImgOps.cpp + src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ! src/windows/native/sun/java2d/d3d/D3DContext.cpp ! src/windows/native/sun/java2d/d3d/D3DContext.h + src/windows/native/sun/java2d/d3d/D3DGlyphCache.cpp + src/windows/native/sun/java2d/d3d/D3DGlyphCache.h + src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.cpp + src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h + src/windows/native/sun/java2d/d3d/D3DMaskBlit.cpp + src/windows/native/sun/java2d/d3d/D3DMaskBlit.h + src/windows/native/sun/java2d/d3d/D3DMaskCache.cpp + src/windows/native/sun/java2d/d3d/D3DMaskCache.h ! src/windows/native/sun/java2d/d3d/D3DMaskFill.cpp + src/windows/native/sun/java2d/d3d/D3DMaskFill.h + src/windows/native/sun/java2d/d3d/D3DPaints.cpp + src/windows/native/sun/java2d/d3d/D3DPaints.h + src/windows/native/sun/java2d/d3d/D3DPipeline.cpp + src/windows/native/sun/java2d/d3d/D3DPipeline.h + src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp + src/windows/native/sun/java2d/d3d/D3DPipelineManager.h + src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp + src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ! src/windows/native/sun/java2d/d3d/D3DRenderer.cpp + src/windows/native/sun/java2d/d3d/D3DRenderer.h + src/windows/native/sun/java2d/d3d/D3DResourceManager.cpp + src/windows/native/sun/java2d/d3d/D3DResourceManager.h - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.cpp - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.h + src/windows/native/sun/java2d/d3d/D3DShaderGen.c + src/windows/native/sun/java2d/d3d/D3DShaders.h ! src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp ! src/windows/native/sun/java2d/d3d/D3DSurfaceData.h - src/windows/native/sun/java2d/d3d/D3DTestRaster.h ! src/windows/native/sun/java2d/d3d/D3DTextRenderer.cpp + src/windows/native/sun/java2d/d3d/D3DTextRenderer.h - src/windows/native/sun/java2d/d3d/D3DTextRenderer_md.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.h + src/windows/native/sun/java2d/d3d/D3DVertexCacher.cpp + src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ! src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.c ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.c ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.h - src/windows/native/sun/java2d/windows/DDBlitLoops.cpp - src/windows/native/sun/java2d/windows/DDRenderer.cpp ! src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp ! src/windows/native/sun/java2d/windows/GDIRenderer.cpp + src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp + src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h - src/windows/native/sun/java2d/windows/RegistryKey.cpp - src/windows/native/sun/java2d/windows/RegistryKey.h - src/windows/native/sun/java2d/windows/Win32OffScreenSurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.h - src/windows/native/sun/java2d/windows/WinBackBufferSurfaceData.cpp ! src/windows/native/sun/java2d/windows/WindowsFlags.cpp ! src/windows/native/sun/java2d/windows/WindowsFlags.h - src/windows/native/sun/java2d/windows/ddrawObject.cpp - src/windows/native/sun/java2d/windows/ddrawObject.h - src/windows/native/sun/java2d/windows/ddrawUtils.cpp - src/windows/native/sun/java2d/windows/ddrawUtils.h - src/windows/native/sun/java2d/windows/dxCapabilities.cpp - src/windows/native/sun/java2d/windows/dxCapabilities.h - src/windows/native/sun/java2d/windows/dxInit.cpp - src/windows/native/sun/java2d/windows/dxInit.h ! src/windows/native/sun/windows/Devices.cpp ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Component.h ! src/windows/native/sun/windows/awt_DrawingSurface.cpp ! src/windows/native/sun/windows/awt_DrawingSurface.h ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp ! src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ! src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp ! src/windows/native/sun/windows/awt_Window.cpp ! src/windows/native/sun/windows/awt_Window.h ! src/windows/native/sun/windows/awtmsg.h + test/java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java + test/java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java + test/java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java + test/java/awt/FullScreen/SetFSWindow/FSFrame.java + test/java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java + test/java/awt/image/MemoryLeakTest/MemoryLeakTest.java + test/sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java + test/sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java + test/sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java + test/sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java + test/sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java + test/sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java + test/sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java + test/sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java + test/sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java + test/sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java + test/sun/java2d/GdiRendering/InsetClipping.java + test/sun/java2d/OpenGL/DrawBufImgOp.java + test/sun/java2d/SunGraphics2D/DrawImageBilinear.java + test/sun/java2d/SunGraphics2D/PolyVertTest.java + test/sun/java2d/SunGraphics2D/SimplePrimQuality.java + test/sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java + test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java + test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh + test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java + test/sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java + test/sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java Changeset: 2d7068a03750 Author: tdv Date: 2008-07-22 11:24 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/2d7068a03750 6728492: typo in copyrights in some files touched by the d3d pipeline port Reviewed-by: prr ! make/common/shared/Platform.gmk ! make/common/shared/Sanity.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/font/FILES_c.gmk ! make/sun/font/Makefile ! make/sun/headless/mapfile-vers ! make/sun/xawt/mapfile-vers ! src/share/classes/java/awt/GraphicsDevice.java ! src/share/classes/java/awt/Robot.java ! src/share/classes/java/awt/image/DataBuffer.java ! src/share/classes/java/awt/peer/ComponentPeer.java ! src/share/classes/javax/swing/BufferStrategyPaintManager.java ! src/share/classes/sun/awt/NullComponentPeer.java ! src/share/classes/sun/awt/image/SunVolatileImage.java ! src/share/classes/sun/awt/image/SunWritableRaster.java ! src/share/classes/sun/awt/image/VolatileSurfaceManager.java ! src/share/classes/sun/font/StrikeCache.java ! src/share/classes/sun/java2d/SunGraphics2D.java ! src/share/classes/sun/java2d/SunGraphicsEnvironment.java ! src/share/classes/sun/java2d/SurfaceData.java ! src/share/classes/sun/java2d/loops/BlitBg.java ! src/share/classes/sun/java2d/loops/GeneralRenderer.java ! src/share/classes/sun/java2d/opengl/OGLContext.java ! src/share/classes/sun/java2d/opengl/OGLGraphicsConfig.java ! src/share/classes/sun/java2d/opengl/OGLRenderer.java ! src/share/classes/sun/java2d/opengl/OGLSurfaceData.java ! src/share/classes/sun/java2d/pipe/BufferedOpCodes.java ! src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java ! src/share/classes/sun/java2d/pipe/DrawImage.java ! src/share/native/sun/font/AccelGlyphCache.c ! src/share/native/sun/font/AccelGlyphCache.h ! src/share/native/sun/java2d/Trace.h ! src/share/native/sun/java2d/loops/BlitBg.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ! src/share/native/sun/java2d/opengl/OGLContext.c ! src/share/native/sun/java2d/opengl/OGLContext.h ! src/share/native/sun/java2d/opengl/OGLFuncs.h ! src/share/native/sun/java2d/opengl/OGLRenderQueue.c ! src/share/native/sun/java2d/opengl/OGLRenderQueue.h ! src/share/native/sun/java2d/opengl/OGLRenderer.c ! src/share/native/sun/java2d/opengl/OGLRenderer.h ! src/share/native/sun/java2d/opengl/OGLSurfaceData.c ! src/share/native/sun/java2d/opengl/OGLSurfaceData.h ! src/solaris/classes/sun/awt/X11GraphicsConfig.java ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/motif/MComponentPeer.java ! src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java ! src/solaris/classes/sun/java2d/opengl/GLXSurfaceData.java ! src/solaris/classes/sun/java2d/opengl/GLXVolatileSurfaceManager.java ! src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java ! src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.c ! src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c ! src/windows/classes/sun/awt/Win32GraphicsConfig.java ! src/windows/classes/sun/awt/Win32GraphicsDevice.java ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java ! src/windows/classes/sun/awt/windows/WToolkit.java ! src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java ! src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java ! src/windows/classes/sun/java2d/opengl/WGLVolatileSurfaceManager.java ! src/windows/classes/sun/java2d/windows/GDIBlitLoops.java ! src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java ! src/windows/classes/sun/java2d/windows/WindowsFlags.java ! src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.c ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.c ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.h ! src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp ! src/windows/native/sun/java2d/windows/GDIRenderer.cpp ! 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/java2d/windows/WindowsFlags.h ! src/windows/native/sun/windows/Devices.cpp ! src/windows/native/sun/windows/awt_Component.h ! src/windows/native/sun/windows/awt_DrawingSurface.cpp ! src/windows/native/sun/windows/awt_DrawingSurface.h ! src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp ! src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ! src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp ! src/windows/native/sun/windows/awtmsg.h Changeset: 5a9e7ac25d30 Author: lana Date: 2008-07-24 21:12 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/5a9e7ac25d30 Merge ! make/common/shared/Platform.gmk ! make/common/shared/Sanity.gmk ! make/sun/font/FILES_c.gmk ! make/sun/font/Makefile ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/image/DataBuffer.java ! src/share/classes/sun/awt/FontConfiguration.java ! src/share/classes/sun/awt/image/SunVolatileImage.java ! src/share/classes/sun/font/FontManager.java ! src/share/classes/sun/java2d/SunGraphics2D.java ! src/solaris/classes/sun/awt/X11GraphicsConfig.java ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java ! src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java - src/windows/classes/sun/java2d/d3d/D3DBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/DDBlitLoops.java - src/windows/classes/sun/java2d/windows/DDRenderer.java - src/windows/classes/sun/java2d/windows/DDScaleLoops.java - src/windows/classes/sun/java2d/windows/Win32OffScreenSurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceDataProxy.java - src/windows/classes/sun/java2d/windows/WinBackBuffer.java - src/windows/classes/sun/java2d/windows/WinBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/WinVolatileSurfaceManager.java - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.cpp - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.h - src/windows/native/sun/java2d/d3d/D3DTestRaster.h - src/windows/native/sun/java2d/d3d/D3DTextRenderer_md.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.h - src/windows/native/sun/java2d/windows/DDBlitLoops.cpp - src/windows/native/sun/java2d/windows/DDRenderer.cpp - src/windows/native/sun/java2d/windows/RegistryKey.cpp - src/windows/native/sun/java2d/windows/RegistryKey.h - src/windows/native/sun/java2d/windows/Win32OffScreenSurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.h - src/windows/native/sun/java2d/windows/WinBackBufferSurfaceData.cpp - src/windows/native/sun/java2d/windows/ddrawObject.cpp - src/windows/native/sun/java2d/windows/ddrawObject.h - src/windows/native/sun/java2d/windows/ddrawUtils.cpp - src/windows/native/sun/java2d/windows/ddrawUtils.h - src/windows/native/sun/java2d/windows/dxCapabilities.cpp - src/windows/native/sun/java2d/windows/dxCapabilities.h - src/windows/native/sun/java2d/windows/dxInit.cpp - src/windows/native/sun/java2d/windows/dxInit.h ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Component.h Changeset: 2776a8638537 Author: lana Date: 2008-08-05 17:44 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/2776a8638537 Merge ! make/common/shared/Platform.gmk ! make/sun/font/Makefile Changeset: ab3508401ce4 Author: jtusla Date: 2008-08-01 01:46 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/ab3508401ce4 6509039: Swedish localization has incorrect am/pm markers in FormatData_sv Summary: Added respective section Reviewed-by: peytoia, jenda ! src/share/classes/sun/text/resources/FormatData_sv.java ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: 52f21df467b4 Author: jtusla Date: 2008-08-01 02:58 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/52f21df467b4 6608572: Currency change for Malta and Cyprus Summary: Change the respective currencies Reviewed-by: naoto, jenda ! src/share/classes/java/util/CurrencyData.properties ! test/java/util/Currency/ValidateISO4217.java ! test/java/util/Currency/tablea1.txt Changeset: 1d3a19f9a015 Author: jtusla Date: 2008-08-07 04:52 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/1d3a19f9a015 Merge Changeset: 2140be21d6e1 Author: alanb Date: 2008-07-24 12:40 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/2140be21d6e1 6728728: (se) WindowsSelectorImpl.c doesn't compile with Visual Studio 2008 Reviewed-by: tbell, chegar ! src/windows/native/sun/nio/ch/WindowsSelectorImpl.c Changeset: 8bb706922a08 Author: alanb Date: 2008-07-24 12:46 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8bb706922a08 6726309: Compiler warnings in nio code Reviewed-by: sherman, iris ! src/share/classes/java/nio/channels/spi/AbstractSelector.java ! src/share/classes/java/nio/charset/Charset-X-Coder.java ! src/share/classes/java/nio/charset/Charset.java ! src/share/classes/java/nio/charset/CoderResult.java ! src/share/classes/sun/nio/ch/SelectorImpl.java ! src/share/classes/sun/nio/ch/Util.java ! src/share/native/java/nio/Bits.c ! src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java ! src/solaris/native/java/nio/MappedByteBuffer.c ! src/solaris/native/sun/nio/ch/DatagramChannelImpl.c ! src/solaris/native/sun/nio/ch/InheritedChannel.c ! src/solaris/native/sun/nio/ch/Net.c ! src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c ! src/solaris/native/sun/nio/ch/SocketChannelImpl.c ! src/windows/classes/sun/nio/ch/PipeImpl.java ! src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java Changeset: d01e7cae7b3e Author: ohair Date: 2008-07-24 14:03 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/d01e7cae7b3e 6725543: Compiler warnings in serviceability native code Reviewed-by: alanb ! src/share/back/ThreadReferenceImpl.c ! src/share/back/transport.c ! src/share/demo/jvmti/hprof/hprof_io.c ! src/share/demo/jvmti/hprof/hprof_util.c ! src/share/transport/shmem/shmemBack.c ! src/share/transport/shmem/shmemBase.c ! src/share/transport/socket/socketTransport.c ! src/share/transport/socket/sysSocket.h ! src/solaris/transport/socket/socket_md.c ! src/windows/transport/socket/socket_md.c ! src/windows/transport/socket/socket_md.h Changeset: 7b7d051e3b96 Author: thurka Date: 2008-07-25 12:40 +0200 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/7b7d051e3b96 6672135: setInterval() for local MonitoredHost and local MonitoredVm does not work Summary: super.setInterval() invoked with correct value Reviewed-by: swamyv ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/MonitoredHostProvider.java Changeset: 541631112989 Author: sherman Date: 2008-07-26 20:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/541631112989 6681798: (build) CharsetEncoder.java fails to compile in openjdk6 on ubutu 8.04 Summary: replace awk-sed based spp.sh with a java regex based pre-processor Reviewed-by: alanb ! make/java/nio/Makefile ! make/java/nio/genCoder.sh - make/java/nio/spp.sh ! make/tools/Makefile + make/tools/spp/Makefile + make/tools/src/build/tools/spp/Spp.java Changeset: f2547e64dc3c Author: jjh Date: 2008-07-28 12:37 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/f2547e64dc3c 6730587: TEST: com/sun/jdi/MonitorFrameInfoTest.java fails with -server -Xcomp Summary: Fix test to prevent C2 escape analysis from deleting the required synchronized blocks Reviewed-by: swamyv ! test/com/sun/jdi/MonitorFrameInfo.java Changeset: 8c667d55b79e Author: dfuchs Date: 2008-07-29 19:21 +0200 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8c667d55b79e 6402254: Revisit ModelMBean DescriptorSupport implementation of equals and hashCode. Reviewed-by: emcmanus ! src/share/classes/com/sun/jmx/mbeanserver/Util.java ! src/share/classes/javax/management/ImmutableDescriptor.java ! src/share/classes/javax/management/modelmbean/DescriptorSupport.java Changeset: 571a6e4bbb91 Author: jccollet Date: 2008-07-01 13:29 +0200 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/571a6e4bbb91 6713809: FTP fails from multi-homed system Summary: Binds the data socket to the same address as the control socket Reviewed-by: michaelm ! src/share/classes/sun/net/ftp/FtpClient.java Changeset: b6a29195bc04 Author: jccollet Date: 2008-07-01 13:38 +0200 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/b6a29195bc04 6656849: NullPointerException thrown while de-serializing IPV6 Address. Summary: Check for existence of interface name earlier in code Reviewed-by: michaelm ! src/share/classes/java/net/Inet6Address.java + test/java/net/Inet6Address/serialize/Readme.txt ! test/java/net/Inet6Address/serialize/Serialize.java + test/java/net/Inet6Address/serialize/serial-bge0.ser Changeset: cedc95b10b72 Author: wetmore Date: 2008-07-07 13:06 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/cedc95b10b72 Merge Changeset: 1d621ef0330b Author: weijun Date: 2008-07-09 12:03 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/1d621ef0330b 6480981: keytool should be able to import certificates from remote SSL servers Reviewed-by: vinnie, wetmore ! src/share/classes/sun/security/tools/KeyTool.java ! src/share/classes/sun/security/util/Resources.java + test/sun/security/tools/keytool/PrintSSL.java + test/sun/security/tools/keytool/printssl.sh Changeset: c9be2cc052b5 Author: michaelm Date: 2008-07-14 11:39 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/c9be2cc052b5 6536211: flaw in ServerImpl Summary: removed doPrivileged block Reviewed-by: jccollet ! src/share/classes/sun/net/httpserver/ServerImpl.java Changeset: 3b8e5bfe2be7 Author: chegar Date: 2008-07-19 10:27 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/3b8e5bfe2be7 6726164: jdk\src\windows\native\java\net\NetworkInterface.h(172) : error C2365: 'IpPrefixOriginOther' : redef Summary: Change the NetworkInterface header that allows it to compile on the current compiler/SDK version as well as the SDK bundled with Visual Studio 2008. Reviewed-by: ohair, alanb ! src/windows/native/java/net/NetworkInterface.h Changeset: 8f63365a2586 Author: michaelm Date: 2008-07-23 12:05 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/8f63365a2586 6728076: Test case for 6536211 is failing on all platforms Summary: exception needed to be caught and logged Reviewed-by: chegar ! src/share/classes/sun/net/httpserver/ServerImpl.java Changeset: 701eaee7ebed Author: wetmore Date: 2008-07-23 12:16 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/701eaee7ebed Merge ! src/share/classes/sun/net/ftp/FtpClient.java Changeset: 9655476d50f4 Author: weijun Date: 2008-07-27 19:16 +0800 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/9655476d50f4 6709758: keytool default cert fingerprint algorithm should be SHA1, not MD5 Reviewed-by: mullan, xuelei ! src/share/classes/sun/security/tools/KeyTool.java ! src/share/classes/sun/security/util/Resources.java Changeset: b7fce4bac617 Author: chegar Date: 2008-07-28 13:02 +0100 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/b7fce4bac617 6729881: Compiler warning in networking native code Summary: Cleanup compiler warnings Reviewed-by: alanb, jccollet, michaelm ! 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/SocketInputStream.c ! src/solaris/native/java/net/SocketOutputStream.c ! src/solaris/native/java/net/linux_close.c ! src/solaris/native/java/net/net_util_md.c ! src/windows/native/java/net/Inet4AddressImpl.c ! src/windows/native/java/net/Inet6AddressImpl.c ! src/windows/native/java/net/NetworkInterface.c ! src/windows/native/java/net/NetworkInterface.h ! src/windows/native/java/net/NetworkInterface_win9x.c ! src/windows/native/java/net/NetworkInterface_winXP.c ! src/windows/native/java/net/SocketOutputStream.c ! src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c ! src/windows/native/java/net/TwoStacksPlainSocketImpl.c ! src/windows/native/java/net/net_util_md.c ! src/windows/native/java/net/net_util_md.h ! src/windows/native/sun/net/dns/ResolverConfigurationImpl.c ! src/windows/native/sun/net/www/protocol/http/NTLMAuthSequence.c Changeset: 441f88d39988 Author: chegar Date: 2008-07-29 09:53 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/441f88d39988 6730740: Fix for 6729881 has apparently broken several 64 bit tests: "Bad address" Reviewed-by: alanb, jccollet ! src/solaris/native/java/net/linux_close.c ! src/solaris/native/java/net/net_util_md.c Changeset: 95ce89bf8cd2 Author: wetmore Date: 2008-07-29 10:18 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/95ce89bf8cd2 Merge Changeset: 498c2de672c1 Author: wetmore Date: 2008-07-29 16:57 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/498c2de672c1 Merge Changeset: 289bc9ca7556 Author: tbell Date: 2008-08-01 15:21 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/289bc9ca7556 Merge ! make/java/nio/Makefile Changeset: 7e10774d2a29 Author: tbell Date: 2008-08-07 09:42 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/7e10774d2a29 Merge - src/windows/classes/sun/java2d/d3d/D3DBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/DDBlitLoops.java - src/windows/classes/sun/java2d/windows/DDRenderer.java - src/windows/classes/sun/java2d/windows/DDScaleLoops.java - src/windows/classes/sun/java2d/windows/Win32OffScreenSurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceDataProxy.java - src/windows/classes/sun/java2d/windows/WinBackBuffer.java - src/windows/classes/sun/java2d/windows/WinBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/WinVolatileSurfaceManager.java - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.cpp - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.h - src/windows/native/sun/java2d/d3d/D3DTestRaster.h - src/windows/native/sun/java2d/d3d/D3DTextRenderer_md.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.h - src/windows/native/sun/java2d/windows/DDBlitLoops.cpp - src/windows/native/sun/java2d/windows/DDRenderer.cpp - src/windows/native/sun/java2d/windows/RegistryKey.cpp - src/windows/native/sun/java2d/windows/RegistryKey.h - src/windows/native/sun/java2d/windows/Win32OffScreenSurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.h - src/windows/native/sun/java2d/windows/WinBackBufferSurfaceData.cpp - src/windows/native/sun/java2d/windows/ddrawObject.cpp - src/windows/native/sun/java2d/windows/ddrawObject.h - src/windows/native/sun/java2d/windows/ddrawUtils.cpp - src/windows/native/sun/java2d/windows/ddrawUtils.h - src/windows/native/sun/java2d/windows/dxCapabilities.cpp - src/windows/native/sun/java2d/windows/dxCapabilities.h - src/windows/native/sun/java2d/windows/dxInit.cpp - src/windows/native/sun/java2d/windows/dxInit.h Changeset: e35680499077 Author: ohair Date: 2008-08-06 15:02 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/e35680499077 6728161: Add SKIP_BOOT_CYCLE feature to create boot jdk and use it during build Summary: Needed BOOT_JAR_JFLAGS. Fixed PREVIOUS_RELEASE_IMAGE. Reviewed-by: tbell ! make/com/sun/crypto/provider/Makefile ! make/com/sun/inputmethods/indicim/Makefile ! make/com/sun/inputmethods/thaiim/Makefile ! make/common/BuildToolJar.gmk ! make/common/Demo.gmk ! make/common/Release.gmk ! make/common/internal/BinaryPlugs.gmk ! make/common/internal/ImportComponents.gmk ! make/common/shared/Defs-java.gmk ! make/java/management/Makefile ! make/javax/crypto/Makefile ! make/javax/swing/beaninfo/SwingBeans.gmk ! make/sun/jconsole/Makefile ! make/sun/net/spi/nameservice/dns/Makefile ! make/sun/nio/Makefile ! make/sun/security/mscapi/Makefile ! make/sun/security/pkcs11/Makefile ! make/sun/text/Makefile Changeset: b374f6174534 Author: ohair Date: 2008-07-30 19:40 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/b374f6174534 6729772: 64-bit build with SS12 compiler: SIGSEGV (0xb) at pc=0x0000000000000048, pid=14826, tid=2 Reviewed-by: tbell ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/Library.gmk ! make/common/shared/Defs.gmk ! make/java/fdlibm/Makefile ! make/java/java_hprof_demo/Makefile ! make/sun/awt/Makefile ! make/sun/font/Makefile ! make/sun/font/t2k/Makefile ! make/sun/image/generic/Makefile ! make/sun/image/vis/Makefile ! make/sun/jpeg/Makefile Changeset: a140a5aa5f2c Author: ohair Date: 2008-08-06 16:21 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/a140a5aa5f2c 6724669: JDK7: Official change to Sun Studio 12 compilers on Solaris Reviewed-by: tbell - make/README-builds.html - make/README.html ! make/common/shared/Compiler-sun.gmk ! make/jprt.config Changeset: a418b563ed63 Author: ohair Date: 2008-08-06 16:43 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/a418b563ed63 Merge - make/README-builds.html - make/README.html ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/shared/Defs.gmk ! make/java/fdlibm/Makefile ! make/java/java_hprof_demo/Makefile ! make/sun/font/Makefile ! make/sun/font/t2k/Makefile ! make/sun/jpeg/Makefile Changeset: a5e641698d38 Author: ohair Date: 2008-08-08 08:50 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/a5e641698d38 6734977: Fix build failure regarding the now deleted file jdk/README.html Reviewed-by: xdono, tbell - make/ASSEMBLY_EXCEPTION - make/LICENSE - make/README - make/THIRD_PARTY_README ! make/common/Release.gmk Changeset: 32a4e56d5f68 Author: ohair Date: 2008-08-08 08:52 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/32a4e56d5f68 Merge - make/ASSEMBLY_EXCEPTION - make/LICENSE - make/README - make/THIRD_PARTY_README ! make/common/Release.gmk Changeset: fa4c0a6cdd25 Author: xdono Date: 2008-08-12 15:17 -0700 URL: http://hg.openjdk.java.net/jdk7/hotspot-gc/jdk/rev/fa4c0a6cdd25 Merge - make/java/nio/spp.sh ! make/sun/awt/Makefile ! make/sun/font/Makefile - src/windows/classes/sun/java2d/d3d/D3DBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/DDBlitLoops.java - src/windows/classes/sun/java2d/windows/DDRenderer.java - src/windows/classes/sun/java2d/windows/DDScaleLoops.java - src/windows/classes/sun/java2d/windows/Win32OffScreenSurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceData.java - src/windows/classes/sun/java2d/windows/Win32SurfaceDataProxy.java - src/windows/classes/sun/java2d/windows/WinBackBuffer.java - src/windows/classes/sun/java2d/windows/WinBackBufferSurfaceData.java - src/windows/classes/sun/java2d/windows/WinVolatileSurfaceManager.java - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.cpp - src/windows/native/sun/java2d/d3d/D3DRuntimeTest.h - src/windows/native/sun/java2d/d3d/D3DTestRaster.h - src/windows/native/sun/java2d/d3d/D3DTextRenderer_md.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.cpp - src/windows/native/sun/java2d/d3d/D3DUtils.h - src/windows/native/sun/java2d/windows/DDBlitLoops.cpp - src/windows/native/sun/java2d/windows/DDRenderer.cpp - src/windows/native/sun/java2d/windows/RegistryKey.cpp - src/windows/native/sun/java2d/windows/RegistryKey.h - src/windows/native/sun/java2d/windows/Win32OffScreenSurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.cpp - src/windows/native/sun/java2d/windows/Win32SurfaceData.h - src/windows/native/sun/java2d/windows/WinBackBufferSurfaceData.cpp - src/windows/native/sun/java2d/windows/ddrawObject.cpp - src/windows/native/sun/java2d/windows/ddrawObject.h - src/windows/native/sun/java2d/windows/ddrawUtils.cp