RFR (XS): G1 - Missing memory barrier in start_cset_region_for_worker
Mikael Gerdin
mikael.gerdin at oracle.com
Tue Jan 19 14:45:32 UTC 2016
Hi Axel,
On 2016-01-19 15:30, Axel Siebenborn wrote:
> Hi,
> we have seen crashes on ppc due to a missing memory barrier in
> G1CollectedHeap::start_cset_region_for_worker.
> The code checks, if a HeapRegion is valid by comparing the gc_time_stamp
> with a store value in an array and loads the according HeapRegion from
> an other array. However, these entries are written by an other thread.
> The two loads have to be ordered by a memory barrier, to prevent them
> from being re-ordered and accessing a stale value for the HeapRegion.
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8147611
>
> Webrev:
> http://cr.openjdk.java.net/~asiebenborn/8147611_0/webrev/
This makes sense and corresponds to the storestore() at
2568 OrderAccess::storestore();
2569 _worker_cset_start_region_time_stamp[worker_i] = gc_time_stamp;
2570 return result;
Looks good, I can sponsor it.
/Mikael
>
> Could I please have reviews and a sponsor for this fix.
>
> thanks,
> Axel
>
More information about the hotspot-gc-dev
mailing list