237 Commits

Author SHA1 Message Date
Y. Srinivas Ramakrishna
e69cc568e9 Merge 2011-05-12 17:36:45 -07:00
Y. Srinivas Ramakrishna
7721092e27 Merge 2011-05-12 15:05:22 -07:00
Frederic Parain
b38843c8d9 7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
Add a notification to the GarbageCollectorMXBeans

Reviewed-by: acorn, mchung
2011-05-12 10:30:11 -07:00
Y. Srinivas Ramakrishna
c40a4d6878 7043891: CMS: assert(_whole_heap.contains(p)) failed: out of bounds access to card marking array
Fixed assertion checking code that was attempting to translate addresses past end of space for card-table slot. Also elaborated some assertion checking messages.

Reviewed-by: iveresov, jmasa, tonyp
2011-05-11 15:47:12 -07:00
Y. Srinivas Ramakrishna
8e56205189 6883834: ParNew: assert(!_g->to()->is_in_reserved(obj),"Scanning field twice?") with LargeObjects tests
Fixed process_chunk_boundaries(), used for parallel card scanning when using ParNew/CMS, so as to prevent double-scanning, or worse, non-scanning of imprecisely marked objects exceeding parallel chunk size. Made some sizing parameters for parallel card scanning diagnostic, disabled ParallelGCRetainPLAB, and elaborated and clarified some comments.

Reviewed-by: stefank, johnc
2011-05-10 00:33:21 -07:00
Tom Rodriguez
b73681ae0c Merge 2011-05-06 11:36:25 -07:00
Bengt Rutisson
90ab9d500c Merge 2011-05-06 09:45:18 +02:00
Keith McGuigan
cc15f4771e Merge 2011-05-04 11:04:45 -04:00
Christian Thalinger
488bc73bcd 7041244: JSR 292: Server VM gets a SEGV running a JCK test
Reviewed-by: iveresov, kvn, never
2011-05-04 00:41:48 -07:00
Jon Masamitsu
0772441e15 Merge 2011-04-29 14:36:21 -07:00
Vladimir Kozlov
6d0283ed8e Merge 2011-04-29 11:15:30 -07:00
Bengt Rutisson
fbffd24fc5 7040068: CMS: Possibly unsafe initialization of BlockOffsetArrayUseUnallocatedBlock
BlockOffsetArrayUseUnallocatedBlock was intended to be turned off as part of BUG 6948538 but a code line in collectorPolicy.cpp actually kept it turned on.

Reviewed-by: jwilhelm, ysr
2011-04-29 09:11:03 +02:00
Antonios Printezis
10f6cc7fc3 7035144: G1: nightly failure: Non-dirty cards in region that should be dirty (failures still exist...)
We should only undirty cards after we decide that they are not on a young region, not before. The fix also includes improvements to the verify_dirty_region() method which print out which cards were not found dirty.

Reviewed-by: johnc, brutisso
2011-04-29 14:59:04 -04:00
Zhengyu Gu
6d9bd0f890 Merge 2011-04-27 06:20:00 -07:00
Zhengyu Gu
865413485d 7036747: 7017009 reappeared, problem with ElfStringTable
Created new "new" operator for CHeapObj that allows malloc to fail without causing fatal error. Also replaced "HeapAllocate" with "os::malloc" in decoder code to allow decoder to handle low memory scenario.

Reviewed-by: coleenp, dholmes
2011-04-27 09:09:57 -04:00
Y. Srinivas Ramakrishna
d86311b13c 7039089: G1: changeset for 7037276 broke heap verification, and related cleanups
In G1 heap verification, we no longer scan perm to G1-collected heap refs as part of process_strong_roots() but rather in a separate explicit oop iteration over the perm gen. This preserves the original perm card-marks. Added a new assertion in younger_refs_iterate() to catch a simple subcase where the user may have forgotten a prior save_marks() call, as happened in the case of G1's attempt to iterate perm to G1 refs when verifying the heap before exit. The assert was deliberately weakened for ParNew+CMS and will be fixed for that combination in a future CR. Also made some (non-G1) cleanups related to code and comments obsoleted by the migration of Symbols to the native heap.

Reviewed-by: iveresov, jmasa, tonyp
2011-04-26 21:17:24 -07:00
Jon Masamitsu
9050363747 Merge 2011-04-22 09:26:09 -07:00
Jon Masamitsu
8328bb291e Merge 2011-04-20 20:32:45 -07:00
Y. Srinivas Ramakrishna
b4d40650b2 7037276: Unnecessary double traversal of dirty card windows
Short-circuited an unnecessary double traversal of dirty card windows when iterating younger refs. Also renamed some cardtable methods for more clarity.

Reviewed-by: jmasa, stefank, poonam
2011-04-20 19:19:30 -07:00
Christian Thalinger
0b2d972fd3 7018355: JSR 292: VM crash in DefNewGeneration::copy_to_survivor_space
Reviewed-by: kvn, jrose
2011-04-18 01:33:28 -07:00
Coleen Phillimore
8acea1848a 7032407: Crash in LinkResolver::runtime_resolve_virtual_method()
Make CDS reorder vtables so that dump time vtables match run time order, so when redefine classes reinitializes them, they aren't in the wrong order.

Reviewed-by: dcubed, acorn
2011-04-15 09:36:28 -04:00
Y. Srinivas Ramakrishna
91657bd273 7036482: clear argument is redundant and unused in cardtable methods
Removed the unused clear argument to various cardtbale methods and unused mod_oop_in_space_iterate method. Unrelated to synopsis, added  a pair of clarifying parens in AllocationStats constructor.

Reviewed-by: brutisso, jcoomes
2011-04-14 12:10:15 -07:00
Jon Masamitsu
b02fa2a90f Merge 2011-04-06 16:02:53 -07:00
Erik Trimble
c9e484d473 7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
Update the copyright to be 2010 on all changed files in OpenJDK

Reviewed-by: ohair
2011-04-05 14:12:31 -07:00
Tom Rodriguez
036560e999 7032129: Native memory usage grow unexpectedly for vm/oom/*InternedString tests
Reviewed-by: kvn, kamg, jcoomes
2011-03-31 14:00:41 -07:00
John Coomes
fe899cc10d 6962931: move interned strings out of the perm gen
Reviewed-by: never, coleenp, ysr, jwilhelm
2011-03-22 13:36:33 -07:00
Tom Rodriguez
6e8a263a06 7017732: move static fields into Class to prepare for perm gen removal
Reviewed-by: kvn, coleenp, twisti, stefank
2011-03-18 16:00:34 -07:00
Tom Rodriguez
f5ef48f3b9 7028374: race in fix_oop_relocations for scavengeable nmethods
Reviewed-by: kvn
2011-03-18 15:52:42 -07:00
John Coomes
0317c7c485 Merge 2011-03-18 09:03:43 -07:00
Y. Srinivas Ramakrishna
b4b287e7ac 6668573: CMS: reference processing crash if ParallelCMSThreads > ParallelGCThreads
Use _max_num_q = max(discovery_degree, processing_degree), and let balance_queues() redistribute from discovery_degree to processing_degree of queues. This should also allow a more dynamic and flexible parallelism policy in the future.

Reviewed-by: jmasa, johnc
2011-03-17 10:32:46 -07:00
Y. Srinivas Ramakrishna
7293fabc43 6896099: Integrate CMS heap ergo with default heap sizing ergo
6627787: CMS: JVM refuses to start up with -Xms16m -Xmx16m
7000125: CMS: Anti-monotone young gen sizing with respect to maximum whole heap size specification
7027529: CMS: retire CMSUseOldDefaults flag

Simplify CMS heap sizing code, relying on ergonomic initial sizing consistent with other collectors for the most part, controlling only young gen sizing to rein in pause times. Make CMS young gen sizing default statically cpu-dependant. Remove inconsistencies wrt generation sizing and policy code, allowing for the fixing for 6627787 and 7000125. For 7027529, retire the flag CMSUseOldDefaults which had been introduced as a bridge from JDK 5 to JDK 6 a number of years ago.

Reviewed-by: brutisso, poonam
2011-03-16 10:37:08 -07:00
Vladimir Kozlov
fd6487f201 7025742: Can not use CodeCache::unallocated_capacity() with fragmented CodeCache
Use largest_free_block() instead of unallocated_capacity().

Reviewed-by: iveresov, never, ysr
2011-03-09 09:15:16 -08:00
Vladimir Kozlov
d7802369bc Merge 2011-03-03 23:31:45 -08:00
Keith McGuigan
380d90b364 6878713: Verifier heap corruption, relating to backward jsrs
Added overflow detection in arena Amalloc methods

Reviewed-by: coleenp, phh
2011-03-02 08:18:35 -05:00
Igor Veresov
90a153aa38 6627983: G1: Bad oop deference during marking
Bulk zeroing reduction didn't work with G1, because arraycopy would call pre-barriers on uninitialized oops. The solution is to have version of arraycopy stubs that don't have pre-barriers. Also refactored arraycopy stubs generation on SPARC to be more readable and reduced the number of stubs necessary in some cases.

Reviewed-by: jrose, kvn, never
2011-03-01 14:56:48 -08:00
Antonios Printezis
d6cd90e122 Merge 2011-02-25 10:58:03 -05:00
Vladimir Kozlov
0ea15ed320 Merge 2011-02-23 11:18:16 -08:00
Stefan Karlsson
46bcea93ef 7020992: jmm_DumpThreads should not allocate system object arrays outside the perm gen
Allocate ordinary object arrays

Reviewed-by: ysr, never, mchung
2011-02-21 11:26:45 +01:00
Antonios Printezis
3e9fe24ddd 7023069: G1: Introduce symmetric locking in the slow allocation path
7023151: G1: refactor the code that operates on _cur_alloc_region to be re-used for allocs by the GC threads
7018286: G1: humongous allocation attempts should take the GC locker into account

First, this change replaces the asymmetric locking scheme in the G1 slow alloc path by a summetric one. Second, it factors out the code that operates on _cur_alloc_region so that it can be re-used for allocations by the GC threads in the future.

Reviewed-by: stefank, brutisso, johnc
2011-03-30 10:26:59 -04:00
Y. Srinivas Ramakrishna
3e02204f5d 7029036: Card-table verification hangs with all framework collectors, except G1, even before the first GC
When verifying clean card ranges, use memory-range-bounded iteration over oops of objects overlapping that range, thus avoiding the otherwise quadratic worst-case cost of scanning large object arrays.

Reviewed-by: jmasa, jwilhelm, tonyp
2011-03-24 15:47:01 -07:00
Stefan Karlsson
311bd2a9a9 7018257: jmm_DumpThreads allocates into permgen
Don't allocate in permgen

Reviewed-by: ysr, sla
2011-02-11 14:15:16 +01:00
Vladimir Kozlov
c13062093b 7018849: 7017124 fix broke VM build on some platforms
Use atomic load and store in inc_stat_counter() only on SPARC and X86.

Reviewed-by: iveresov
2011-02-10 19:34:48 -08:00
Y. Srinivas Ramakrishna
7eccb460db 6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?")
Fix block_size_if_printezis_bits() so it does not expect the bits, only uses them when available. Fix block_size_no_stall() so it does not stall when the bits are missing such cases, letting the caller deal with zero size returns. Constant pool cache oops do not need to be unparsable or conc_unsafe after their klass pointer is installed. Some cosmetic clean-ups and some assertion checking for conc-usafety which, in the presence of class file redefinition, has no a-priori time boundedness, so all GCs must be able to safely deal with putatively conc-unsafe objects in a stop-world pause.

Reviewed-by: jmasa, johnc
2011-02-07 22:19:57 -08:00
Vladimir Kozlov
b9633d42b4 7017124: Fix some VM stats to avoid 32-bit overflow
Added new method inc_stat_counter() to increment long statistic values and use atomic long load and store.

Reviewed-by: dholmes, jrose, phh, never
2011-02-07 10:34:39 -08:00
Coleen Phillimore
7b4f8073f0 6990754: Use native memory and reference counting to implement SymbolTable
Move symbols from permgen into C heap and reference count them

Reviewed-by: never, acorn, jmasa, stefank
2011-01-27 16:11:27 -08:00
Keith McGuigan
272d7eaffc 7012505: BreakpointWithFullGC.sh fails with Internal Error (src/share/vm/oops/methodOop.cpp:220)
Rebuild breakpoint cache at gc_epilogue instead of during oops_do

Reviewed-by: dcubed, ysr, coleenp
2011-01-19 13:51:53 -08:00
Daniel D. Daugherty
0c7a73dc8c Merge 2011-01-07 15:54:32 -08:00
Paul Hohensee
7b0134a7cb 7003271: Hotspot should track cumulative Java heap bytes allocated on a per-thread basis
Track allocated bytes in Thread's, update on TLAB retirement and direct allocation in Eden and tenured, add JNI methods for ThreadMXBean.

Reviewed-by: coleenp, kvn, dholmes, ysr
2011-01-07 10:42:32 -05:00
Christian Thalinger
84f5de835b Merge 2011-01-07 03:41:07 -08:00
Vladimir Kozlov
28050800c0 7008325: CodeCache exhausted on sparc starting from hs20b04
Remove clear_scratch_buffer_blob and let init_scratch_buffer_blob free and allocate a new blob if required.

Reviewed-by: twisti
2010-12-29 10:41:43 -08:00