Code Review for hs24-b44-jdk7u40-b25

Prepared by:amurillo on Thu May 9 06:36:05 PDT 2013
Workspace:hs24-b44-jdk7u40-b25/hotspot
Compare against: jdk7u/jdk7u/hotspot
Compare against version:4468
Summary of changes: 905 lines changed: 405 ins; 157 del; 343 mod; 39160 unchg
Patch of changes: hotspot.patch
Author comments:
6761744: Hotspot crashes if process size limit is exceeded
8005032: G1: Cleanup serial reference processing closures in concurrent marking
8008301: G1: guarantee(satb_mq_set.completed_buffers_num() == 0) failure
8009536: G1: Apache Lucene hang during reference processing
8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809
8010463: G1: Crashes with -UseTLAB and heap verification
8010780: G1: Eden occupancy/capacity output wrong after a full GC
8011218: Kitchensink hanged, likely NMT is to blame
8011425: NPE in TestObjectCountAfterGCEvent.java on Linux32
8012335: G1: Fix bug with compressed oops in template interpreter on x86 and sparc.
8012715: G1: GraphKit accesses PtrQueue::_index as int but is size_t
8013214: BigApps fails due to 'fatal error: Illegal threadstate encountered: 6'
8013799: new hotspot build - hs24-b44
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw .hgtags

rev 4489 : Added tag hs24-b44 for changeset 7eabf05bddea
2 lines changed: 2 ins; 0 del; 0 mod; 497 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw make/hotspot_version

rev 4471 : 8013799: new hotspot build - hs24-b44
Reviewed-by: jcoomes
1 line changed: 0 ins; 0 del; 1 mod; 44 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/templateTable_sparc.cpp

rev 4486 : 8012335: G1: Fix bug with compressed oops in template interpreter on x86 and sparc.
Summary: In do_oop_store the uncompressed value of the oop being stored needs to be preserved and passed to g1_write_barrier_post. This is necessary for the heap region cross check to work correctly.
Reviewed-by: coleenp, johnc
Contributed-by: Martin Doerr <martin.doerr@sap.com>
8 lines changed: 7 ins; 0 del; 1 mod; 3867 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/templateTable_x86_64.cpp

rev 4486 : 8012335: G1: Fix bug with compressed oops in template interpreter on x86 and sparc.
Summary: In do_oop_store the uncompressed value of the oop being stored needs to be preserved and passed to g1_write_barrier_post. This is necessary for the heap region cross check to work correctly.
Reviewed-by: coleenp, johnc
Contributed-by: Martin Doerr <martin.doerr@sap.com>
8 lines changed: 6 ins; 1 del; 1 mod; 3789 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/g1/concurrentMark.cpp

rev 4474 : 8005032: G1: Cleanup serial reference processing closures in concurrent marking
Summary: Reuse the parallel reference processing oop closures during serial reference processing.
Reviewed-by: brutisso, tschatzl
rev 4475 : 8009536: G1: Apache Lucene hang during reference processing
Summary: In CMTask::do_marking_step(), Skip offering termination and entering the first and second synchronization barriers if called from a serial context, i.e. the VM thread.
Reviewed-by: brutisso, tschatzl
rev 4481 : 8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809
Summary: Skip reference processing if the global marking stack overflows during remark. Refactor and rename set_phase(); move code that sets the concurrency level into its own routine. Do not call set_phase() from within parallel reference processing; use the concurrency level routine instead. The marking state should only set reset by CMTask[0] during the concurrent phase of the marking cycle; if an overflow occurs at any stage during the remark, the marking state will be reset after reference processing.
Reviewed-by: brutisso, jmasa, tschatzl
rev 4482 : 8008301: G1: guarantee(satb_mq_set.completed_buffers_num() == 0) failure
Summary: If the marking stack overflows while the marking tasks are draining the SATB buffers, remark will exit with some SATB buffers left unprocessed. Relax the guarantee to allow for overflow.
Reviewed-by: jmasa, brutisso
343 lines changed: 148 ins; 72 del; 123 mod; 4269 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/g1/concurrentMark.hpp

rev 4474 : 8005032: G1: Cleanup serial reference processing closures in concurrent marking
Summary: Reuse the parallel reference processing oop closures during serial reference processing.
Reviewed-by: brutisso, tschatzl
rev 4475 : 8009536: G1: Apache Lucene hang during reference processing
Summary: In CMTask::do_marking_step(), Skip offering termination and entering the first and second synchronization barriers if called from a serial context, i.e. the VM thread.
Reviewed-by: brutisso, tschatzl
rev 4481 : 8009940: G1: assert(_finger == _heap_end) failed, concurrentMark.cpp:809
Summary: Skip reference processing if the global marking stack overflows during remark. Refactor and rename set_phase(); move code that sets the concurrency level into its own routine. Do not call set_phase() from within parallel reference processing; use the concurrency level routine instead. The marking state should only set reset by CMTask[0] during the concurrent phase of the marking cycle; if an overflow occurs at any stage during the remark, the marking state will be reset after reference processing.
Reviewed-by: brutisso, jmasa, tschatzl
9 lines changed: 5 ins; 0 del; 4 mod; 1243 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
rev 4483 : 8010463: G1: Crashes with -UseTLAB and heap verification
Summary: Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.
Reviewed-by: brutisso, tschatzl
rev 4485 : 8010780: G1: Eden occupancy/capacity output wrong after a full GC
Summary: Move the calculation and recording of eden capacity to the start of a GC and print a detailed heap transition for full GCs.
Reviewed-by: tschatzl, jmasa, brutisso
211 lines changed: 25 ins; 16 del; 170 mod; 6367 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp

rev 4485 : 8010780: G1: Eden occupancy/capacity output wrong after a full GC
Summary: Move the calculation and recording of eden capacity to the start of a GC and print a detailed heap transition for full GCs.
Reviewed-by: tschatzl, jmasa, brutisso
31 lines changed: 18 ins; 11 del; 2 mod; 2215 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp

rev 4485 : 8010780: G1: Eden occupancy/capacity output wrong after a full GC
Summary: Move the calculation and recording of eden capacity to the start of a GC and print a detailed heap transition for full GCs.
Reviewed-by: tschatzl, jmasa, brutisso
20 lines changed: 6 ins; 4 del; 10 mod; 930 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
6 lines changed: 5 ins; 0 del; 1 mod; 1054 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_implementation/shared/gcTrace.cpp

rev 4476 : 8011425: NPE in TestObjectCountAfterGCEvent.java on Linux32
Reviewed-by: stefank, brutisso
10 lines changed: 8 ins; 0 del; 2 mod; 194 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_interface/collectedHeap.cpp

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
23 lines changed: 23 ins; 0 del; 0 mod; 585 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/gc_interface/collectedHeap.hpp

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
12 lines changed: 12 ins; 0 del; 0 mod; 718 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/genCollectedHeap.cpp

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
23 lines changed: 2 ins; 17 del; 4 mod; 1449 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/memory/universe.cpp

rev 4483 : 8010463: G1: Crashes with -UseTLAB and heap verification
Summary: Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.
Reviewed-by: brutisso, tschatzl
9 lines changed: 0 ins; 9 del; 0 mod; 1671 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/graphKit.cpp

rev 4487 : 8012715: G1: GraphKit accesses PtrQueue::_index as int but is size_t
Summary: In graphKit INT operations were generated to access PtrQueue::_index which has type size_t. This is 64 bit on 64-bit machines. No problems occur on little endian machines as long as the index fits into 32 bit, but on big endian machines the upper part is read, which is zero. This leads to unnecessary branches to the slow path in the runtime.
Reviewed-by: twisti, johnc
Contributed-by: Martin Doerr <martin.doerr@sap.com>
28 lines changed: 4 ins; 12 del; 12 mod; 3835 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/init.cpp

rev 4483 : 8010463: G1: Crashes with -UseTLAB and heap verification
Summary: Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.
Reviewed-by: brutisso, tschatzl
9 lines changed: 0 ins; 9 del; 0 mod; 169 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/thread.cpp

rev 4483 : 8010463: G1: Crashes with -UseTLAB and heap verification
Summary: Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.
Reviewed-by: brutisso, tschatzl
11 lines changed: 5 ins; 6 del; 0 mod; 4629 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/services/memBaseline.cpp

rev 4477 : 8011218: Kitchensink hanged, likely NMT is to blame
Summary: Made NMT query safepoint aware.
Reviewed-by: dholmes, coleenp
rev 4478 : 8013214: BigApps fails due to 'fatal error: Illegal threadstate encountered: 6'
Summary: Grab and drop SR_lock to get the thread to honor the safepoint protocol
Reviewed-by: dcubed, coleenp
29 lines changed: 23 ins; 0 del; 6 mod; 463 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/services/memBaseline.hpp

rev 4477 : 8011218: Kitchensink hanged, likely NMT is to blame
Summary: Made NMT query safepoint aware.
Reviewed-by: dholmes, coleenp
4 lines changed: 3 ins; 0 del; 1 mod; 445 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/services/memTracker.cpp

rev 4477 : 8011218: Kitchensink hanged, likely NMT is to blame
Summary: Made NMT query safepoint aware.
Reviewed-by: dholmes, coleenp
4 lines changed: 0 ins; 0 del; 4 mod; 697 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw test/TEST.ROOT

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
1 line changed: 0 ins; 0 del; 1 mod; 30 unchg

------ ------ ------ ------ ------ --- New Patch Raw test/gc/TestVerifyBeforeGCDuringStartup.java

rev 4483 : 8010463: G1: Crashes with -UseTLAB and heap verification
Summary: Some parts of the G1 heap can only be walked during a safepoint. Skip verifying these parts of the heap when verifying during JVM startup.
Reviewed-by: brutisso, tschatzl
45 lines changed: 45 ins; 0 del; 0 mod; 0 unchg

------ ------ ------ ------ ------ --- New Patch Raw test/gc/init/TestHandleExceedingProcessSizeLimitIn32BitBuilds.java

rev 4472 : 6761744: Hotspot crashes if process size limit is exceeded
Summary: Check overflow of total_reserved: object heap + perm gen (+ miscellaneous data structures) before reserving heap space, and VM aborts with appropriate message if overflowed.
Reviewed-by: brutisso, johnc, tschatzl
Contributed-by: tamao <tao.mao@oracle.com>
58 lines changed: 58 ins; 0 del; 0 mod; 0 unchg

This code review page was prepared using /java/jdk/bin/webrev (vers 23.18-hg).