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
jcoomes [Mon, 09 Aug 2010 18:03:50 -0700] rev 6252
6970376: ParNew: shared TaskQueue statistics
Reviewed-by: ysr
jcoomes [Mon, 09 Aug 2010 05:41:05 -0700] rev 6251
6966222: G1: simplify TaskQueue overflow handling
Reviewed-by: tonyp, ysr
johnc [Fri, 06 Aug 2010 10:17:21 -0700] rev 6250
6930581: G1: assert(ParallelGCThreads > 1 || n_yielded() == _hrrs->occupied(),"Should have yielded all the ..
Summary: During RSet updating, when ParallelGCThreads is zero, references that point into the collection set are added directly the referenced region's RSet. This can cause the sparse table in the RSet to expand. RSet scanning and the "occupied" routine will then operate on different instances of the sparse table causing the assert to trip. This may also cause some cards added post expansion to be missed during RSet scanning. When ParallelGCThreads is non-zero such references are recorded on the "references to be scanned" queue and the card containing the reference is recorded in a dirty card queue for use in the event of an evacuation failure. Employ the parallel code in the serial case to avoid expanding the RSets of regions in the collection set.
Reviewed-by: iveresov, ysr, tonyp