RFR: 8138966: Intermittent SEGV running ParallelGC (original) (raw)

Dean Long dean.long at oracle.com
Thu Oct 29 20:32:33 UTC 2015


I'll let GC folks review for correctness, but I was just wondering if you could use load_aquire() and release_store() instead of acquire() and release().

dl

On 10/29/2015 11:12 AM, Andrew Haley wrote:

We have observed intermittent crashes when running with -XX:+UseParallelGC on a many-core AArch64 system. These appear as apparently random segfaults.

I've tracked it down to a race between threads when updating the block table in ParallelCompactData::calcnewpointer() : if (!regionptr->blocksfilled()) { PSParallelCompact::fillblocks(addrtoregionidx(addr)); regionptr->setblocksfilled(); } Neither blocksfilled() nor setblocksfilled() have any memory fences so it is possible for a thread to observe a partially-filled block table. http://cr.openjdk.java.net/~aph/8138966/ This is shared code so I'll need someone to push this for me. Andrew.



More information about the hotspot-dev mailing list