johnc [Wed, 18 Aug 2010 17:44:33 -0400] rev 6264
Merge
johnc [Wed, 18 Aug 2010 10:59:06 -0700] rev 6263
6977924: Changes for 6975078 produce build error with certain gcc versions
Summary: The changes introduced for 6975078 assign badHeapOopVal to the _allocation field in the ResourceObj class. In 32 bit linux builds with certain versions of gcc this assignment will be flagged as an error while compiling allocation.cpp. In 32 bit builds the constant value badHeapOopVal (which is cast to an intptr_t) is negative. The _allocation field is typed as an unsigned intptr_t and gcc catches this as an error.
Reviewed-by: jcoomes, ysr, phh
ysr [Wed, 18 Aug 2010 11:39:21 -0700] rev 6262
6977970: CMS: concurrentMarkSweepGeneration.cpp:7947 assert(addr <= _limit) failed: sweep invariant
Summary: Allow for the possibility (when the heap is expanding) that the sweep might skip over and past, rather than necessarily step on, the sweep limit determined at the beginning of a concurrent marking cycle.
Reviewed-by: jmasa, tonyp
tonyp [Tue, 17 Aug 2010 14:40:00 -0400] rev 6261
6975964: G1: print out a more descriptive message for evacuation failure when +PrintGCDetails is set
Summary: we're renaming "evacuation failure" to "to-space overflow". I'm also piggy-backing a small additional change which removes the "Mark closure took..." output.
Reviewed-by: ysr, johnc
tonyp [Tue, 17 Aug 2010 14:40:00 -0400] rev 6260
6974928: G1: sometimes humongous objects are allocated in young regions
Summary: as the title says, sometimes we are allocating humongous objects in young regions and we shouldn't.
Reviewed-by: ysr, johnc
tonyp [Tue, 17 Aug 2010 14:40:00 -0400] rev 6259
6959014: G1: assert(minimum_desired_capacity <= maximum_desired_capacity) failed: sanity check
Summary: There are a few issues in the code that calculates whether to resize the heap and by how much: a) some calculations can overflow 32-bit size_t's, b) min_desired_capacity is not bounded by the max heap size, and c) the assrt that fires is in the wrong place. The fix also includes some tidying up of the related verbose code.
Reviewed-by: ysr, jmasa
ysr [Mon, 16 Aug 2010 15:58:42 -0700] rev 6258
6948538: CMS: BOT walkers can fall into object allocation and initialization cracks
Summary: GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode.
Reviewed-by: chrisphi, johnc, poonam
asaha [Tue, 17 Aug 2010 22:52:50 -0700] rev 6257
6977952: Test: Sync missing tests from hs16.3 to hs17.x
Reviewed-by: wrockett
trims [Wed, 18 Aug 2010 16:11:21 -0700] rev 6256
Merge
johnc [Sat, 14 Aug 2010 00:47:52 -0700] rev 6255
Merge
jcoomes [Wed, 11 Aug 2010 13:12:28 -0700] rev 6254
6976378: ParNew: stats are printed unconditionally in debug builds
Reviewed-by: tonyp
ysr [Tue, 10 Aug 2010 14:53:35 -0700] rev 6253
6973570: OrderAccess::storestore() scales poorly on multi-socket x64 and sparc: cache-line ping-ponging
Summary: volatile store to static variable removed in favour of a volatile store to stack to avoid excessive cache coherency traffic; verified that the volatile store is not elided by any of our current compilers.
Reviewed-by: dholmes, dice, jcoomes, kvn