Commit Graph

2510 Commits

Author SHA1 Message Date
Bengt Rutisson
3aaa5fb06d 7016112: CMS: crash during promotion testing
Also reviewed by mikael.gerdin@oracle.com; stdlib:qsort() does byte-by-byte swapping on Windows. This leads to pointer shearing. Fix is to implement a quicksort that does full pointer updates.

Reviewed-by: never, coleenp, ysr
2011-06-28 14:23:27 +02:00
Antonios Printezis
4597e4c7a8 7049999: G1: Make the G1PrintHeapRegions output consistent and complete
Extend and make more consistent the output from the G1PrintHeapRegions flag.

Reviewed-by: johnc, jmasa
2011-06-24 12:38:49 -04:00
Antonios Printezis
408e0b1bc1 7046182: G1: remove unnecessary iterations over the collection set
Remove two unnecessary iterations over the collection set which are supposed to prepare the RSet's of the CSet regions for parallel iterations (we'll make sure this is done incrementally). I'll piggyback on this CR the removal of the G1_REM_SET_LOGGING code.

Reviewed-by: brutisso, johnc
2011-06-21 15:23:07 -04:00
Antonios Printezis
7ceee7642b 7055073: G1: code cleanup in the concurrentMark.* files
Only cosmetic changes to make the concurrentMark.* more consistent, code-style-wise, with the rest of the codebase.

Reviewed-by: johnc, ysr
2011-06-20 22:03:13 -04:00
Y. Srinivas Ramakrishna
45f42598c1 6916968: CMS: freeList.cpp:304 assert(_allocation_stats.prevSweep() + ..., "Conservation Principle")
Fix assert and adjust demand volume computation by adding missing factor.

Reviewed-by: jmasa, tonyp
2011-06-20 09:42:26 -07:00
Antonios Printezis
937d6ded89 6994322: Remove the is_tlab and is_noref / is_large_noref parameters from the CollectedHeap
Remove two unused parameters from the mem_allocate() method and update its uses accordingly.

Reviewed-by: stefank, johnc
2011-06-16 15:51:57 -04:00
John Cuthbertson
43d9e95a42 7045751: G1: +ExplicitGCInvokesConcurrent causes excessive single region evacuation pauses
When ExplicitGCInvokesConcurrent is enabled, do not perform an evacuation pause if a marking cycle is already in progress and block the requesting thread until the marking cycle completes.

Reviewed-by: tonyp, ysr
2011-06-15 10:18:04 -07:00
John Cuthbertson
b94d0b830c 7004681: G1: Extend marking verification to Full GCs
Perform a heap verification after the first phase of G1's full GC using objects' mark words to determine liveness. The third parameter of the heap verification routines, which was used in G1 to determine which marking bitmap to use in liveness calculations, has been changed from a boolean to an enum with values defined for using the mark word, and the 'prev' and 'next' bitmaps.

Reviewed-by: tonyp, ysr
2011-06-14 11:01:10 -07:00
Antonios Printezis
015e872efe 7046558: G1: concurrent marking optimizations
Some optimizations to improve the concurrent marking phase: specialize the main oop closure, make sure a few methods in the fast path are properly inlined, a few more bits and pieces, and some cosmetic fixes.

Reviewed-by: stefank, johnc
2011-06-14 10:33:43 -04:00
Bengt Rutisson
c0d64ac595 6918185: Remove unused code for lost card-marking optimization in BacktraceBuilder
Removed dead code

Reviewed-by: ysr, coleenp, dholmes
2011-06-13 13:48:18 +02:00
Y. Srinivas Ramakrishna
9ca97e4c78 7051430: CMS: ongoing CMS cycle should terminate abruptly to allow prompt JVM termination at exit
It turns out that there is no need to explicitly stop CMS since the JVM is taken down at a terminal safepoint during which CMS threads are (terminally) inactive. This  will need to be revised if and when we evolve in the future to a point where we allow JVM reincarnation in the same process, but those changes will be much more sweeping than just terminating CMS threads. The unused ::stop() methods will be removed in a separate CR. Also include in this CR is the fix for a small typo in the spelling of UseGCLogFileRotation in a message in arguments.cpp, brought to our attention by Rainer Jung and reviewed by minqi.

Reviewed-by: johnc, jwilhelm
2011-06-13 09:58:16 -07:00
Yumin Qi
f79196c54c Merge 2011-06-10 15:44:02 -07:00
Yumin Qi
5d0ad03a55 6941923: RFE: Handling large log files produced by long running Java Applications
Supply optinal flags to realize gc log rotation

Reviewed-by: ysr, jwilhelm
2011-06-10 15:08:36 -07:00
Antonios Printezis
9332c44d84 7045330: G1: Simplify/fix the HeapRegionSeq class
7042285: G1: native memory leak during humongous object allocation
6804436: G1: heap region indices should be size_t

A series of fixes and improvements to the HeapRegionSeq class: a) replace the _regions growable array with a standard C array, b) avoid de-allocating / re-allocating HeapRegion instances when the heap shrinks / grows (fix for 7042285), c) introduce fast method to map address to HeapRegion via a "biased" array pointer, d) embed the _hrs object in G1CollectedHeap, instead of pointing to it via an indirection, e) assume that all the regions added to the HeapRegionSeq instance are contiguous, f) replace int's with size_t's for indexes (and expand that to HeapRegion as part of 6804436), g) remove unnecessary / unused methods, h) rename a couple of fields (_alloc_search_start and _seq_bottom), i) fix iterate_from() not to always start from index 0 irrespective of the region passed to it, j) add a verification method to check the HeapRegionSeq assumptions, k) always call the wrappers for _hrs.iterate(), _hrs_length(), and _hrs.at() from G1CollectedHeap, not those methods directly, and l) unify the code that expands the sequence (by either re-using or creating a new HeapRegion) and make it robust wrt to a HeapRegion allocation failing.

Reviewed-by: stefank, johnc, brutisso
2011-06-10 13:16:40 -04:00
Antonios Printezis
6d6d8a571c 7045662: G1: OopsInHeapRegionClosure::set_region() should not be virtual
Make the method non-virtual, remove five unused closures, and fix a couple of copyright typos.

Reviewed-by: stefank, johnc, poonam
2011-06-08 21:48:38 -04:00
Antonios Printezis
507bff762b 7032531: G1: enhance GC logging to include more accurate eden / survivor size transitions
This changeset extends the logging information generated by +PrintGCDetails to also print out separate size transitions for the eden, survivors, and old regions.

Reviewed-by: ysr, brutisso
2011-06-08 15:31:51 -04:00
Y. Srinivas Ramakrishna
93d9f1ddd9 Merge 2011-06-08 08:39:53 -07:00
John Coomes
b45fdce61d Merge 2011-06-07 13:17:05 -07:00
Y. Srinivas Ramakrishna
a893b9dd91 7048782: CMS: assert(last_chunk_index_to_check<= last_chunk_index) failed: parCardTableModRefBS.cpp:359
The LNC array is sized before the start of a scavenge, while the heap may expand during a scavenge. With CMS, the last block of an arbitrary suffice of the LNC array may expand due to coalition with the expansion delta. We now take care not to attempt access past the end of the LNC array. LNC array code will be cleaned up and suitably encapsulated as part of the forthcoming performance RFE 7043675.

Reviewed-by: brutisso
2011-06-02 10:23:36 -07:00
John R Rose
8465226f29 7049410: JSR 292 old method name MethodHandle.invokeGeneric should not be accepted by the JVM
Change the default setting of the flag AllowInvokeGeneric to false

Reviewed-by: never
2011-06-01 23:25:31 -07:00
John R Rose
0ed03852e5 7049415: Failure of resolution of sym.reference to the c.s.s. should be wrapped in BootstrapMethodError
Delegate invokedynamic linkage errors to MethodHandleNatives.raiseException.

Reviewed-by: never
2011-06-01 23:25:20 -07:00
Vladimir Kozlov
a8556d6c01 6956668: misbehavior of XOR operator (^) with int
Optimize cmp_ne(xor(X,1),0) to cmp_eq(X,0) only for boolean values X.

Reviewed-by: never
2011-05-31 10:05:36 -07:00
Vladimir Kozlov
c3a7796068 7047069: Array can dynamically change size when assigned to an object field
Fix initialization of a newly-allocated array with arraycopy

Reviewed-by: never
2011-05-27 12:47:48 -07:00
Y. Srinivas Ramakrishna
8a46284b54 7048342: CMS: eob == _limit || fc->isFree() failed: Only a free chunk should allow us to cross over the limit
The freeness bit was being cleared in debug code when it shouldn't have been. Also removed unused FreeChunk methods linkAfterNonNull and clearPrev.

Reviewed-by: brutisso
2011-05-27 10:23:03 -07:00
Tom Rodriguez
382a3145b9 Merge 2011-05-26 16:39:34 -07:00
Tom Rodriguez
7cf200bd15 7047961: JSR 292 MethodHandleWalk swap args doesn't handle T_LONG and T_DOUBLE properly
Reviewed-by: kvn, jrose
2011-05-26 14:44:41 -07:00
Igor Veresov
193c0ac698 7047491: C1: registers saved incorrectly when calling checkcast_arraycopy stub
Save and restore the argument registers around the call to checkcast_arraycopy

Reviewed-by: never, roland
2011-05-26 13:15:01 -07:00
Vladimir Kozlov
a1e18b9ed3 7048332: Cadd_cmpLTMask doesn't handle 64-bit tmp register properly
Use ins_encode %{ %} form to encode cadd_cmpLTMask() instruction and remove unused code.

Reviewed-by: never
2011-05-25 21:17:07 -07:00
Tom Rodriguez
f6d95d906a 7046732: JSR 292 assert(result == cpce->f1()) failed: expected result for assembly code
Reviewed-by: kvn, iveresov, jrose
2011-05-25 16:04:09 -07:00
Vladimir Kozlov
65530c9100 7048030: is_scavengable changes causing compiler to embed more constants
CiObject::can_be_constant() and should_be_constant() should use is_perm() instead of !is_scavengable()

Reviewed-by: never, jrose
2011-05-24 20:24:11 -07:00
Thomas Salter
da271b804e 7046893: LP64 problem with double_quadword in c1_LIRAssembler_x86.cpp
Fixed invalid casts in address computation

Reviewed-by: kvn, never
2011-05-24 15:30:05 -07:00
Vladimir Kozlov
69bcf41540 7047300: VM crashes with assert(_base == InstPtr) failed: Not an object pointer
The code incorrectly used is_instptr() instead of is_oopptr() to get const_oop.

Reviewed-by: never
2011-05-24 12:54:51 -07:00
Y. Srinivas Ramakrishna
ed15a87975 7042740: CMS: assert(n> q) failed: Looping at: ... blockOffsetTable.cpp:557
Do a one-step look-ahead, when sweeping free or garbage blocks, to avoid overstepping sweep limit, which may become a non-block-boundary because of a heap expansion delta coalescing with a previously co-terminal free block.

Reviewed-by: brutisso, tonyp
2011-05-23 16:42:14 -07:00
Vladimir Kozlov
800a1a0611 7045506: assert(!can_reshape || !new_phi) failed: for igvn new phi should be hooked
Replace the assert in PhiNode::Ideal with check to avoid transformation of new phi.

Reviewed-by: never
2011-05-21 13:59:55 -07:00
Vladimir Kozlov
0aff6e35b8 7045693: java/util/EnumSet/EnumSetBash.java still failing intermittently
New limit for unrolled loop should be set only for zero trip guard and loop iteration test.

Reviewed-by: never
2011-05-21 11:44:31 -07:00
John Coomes
8b76becfe7 Merge 2011-05-20 22:27:48 -07:00
Vladimir Kozlov
8d44d62173 7046096: SEGV IN C2 WITH 6U25
Missing fail flag set in strings concatenation code.

Reviewed-by: never
2011-05-20 12:46:20 -07:00
Erik Trimble
81013a98d0 7040781: Bump the HS21 build number to 14
Update the HS21 build number to 14

Reviewed-by: jcoomes
2011-05-20 05:24:46 -07:00
Tom Rodriguez
b95e28d25a Merge 2011-05-18 11:45:06 -07:00
Keith McGuigan
33cd8e7aa0 Merge 2011-05-18 10:12:31 -04:00
Bengt Rutisson
5417807e7a Merge 2011-05-18 13:19:32 +02:00
Tom Rodriguez
f5e5b2b6e2 Merge 2011-05-17 19:15:34 -07:00
Tom Rodriguez
c2f2cb75fc 7045513: JSR 292 inlining causes crashes in methodHandleWalk.cpp
Reviewed-by: jrose
2011-05-17 19:11:51 -07:00
John R Rose
807e4b3dcf 7044892: JSR 292: API entry points sometimes throw the wrong exceptions or doesn't throw the expected one
Fix to 7042656: JSR292: invokeExact/Generic doesn't throw UnsupportedOperationException if invoked via Method.invoke

Reviewed-by: never
2011-05-17 15:43:46 -07:00
Vladimir Kozlov
32ead86b1c 7045570: compiler/5091921/Test7005594.java failed because not enough space for object heap
Fixed tests.

Reviewed-by: iveresov, never
2011-05-17 12:26:33 -07:00
Bertrand Delsart
4b893d695b 7045515: ARM assembly code for JSR 292 ricochet frames
ARM ricochet port and minor fixes in shared debug code

Reviewed-by: jrose, vladidan
2011-05-17 16:50:27 +02:00
David Holmes
0a07595216 Merge 2011-05-17 09:29:56 -04:00
John Cuthbertson
95548aa291 7041440: G1: assert(obj->is_oop_or_null(true )) failed: Error #
During an evacuation pause clear the region fields of any concurrent marking task whose local finger points into the collection set as the values in the region fields will become stale. Clearing these fields causes the concurrent mark task to claim a new region when marking restarts after the pause.

Reviewed-by: tonyp, iveresov
2011-05-17 00:56:01 -07:00
Tom Rodriguez
a16e057c0a 6996747: SIGSEGV in nmethod::cleanup_inline_caches / CompiledIC::verify
Reviewed-by: kvn, iveresov
2011-05-16 22:16:44 -07:00
Vladimir Kozlov
0e10a5ad61 7044725: -XX:-UnrollLimitCheck -Xcomp : Exception: String index out of range: 29488
Fix problems in new RCE code.

Reviewed-by: never
2011-05-16 14:21:16 -07:00