--- old/src/hotspot/share/gc/g1/g1FreeIdSet.cpp 2019-11-21 11:57:10.466985522 +0100 +++ new/src/hotspot/share/gc/g1/g1FreeIdSet.cpp 2019-11-21 11:57:10.034978225 +0100 @@ -79,7 +79,7 @@ index = head_index(old_head); assert(index < _size, "invariant"); uintx new_head = make_head(_next[index], old_head); - new_head = Atomic::cmpxchg(new_head, &_head, old_head); + new_head = Atomic::cmpxchg(&_head, old_head, new_head); if (new_head == old_head) break; old_head = new_head; } @@ -95,7 +95,7 @@ while (true) { _next[index] = head_index(old_head); uintx new_head = make_head(index, old_head); - new_head = Atomic::cmpxchg(new_head, &_head, old_head); + new_head = Atomic::cmpxchg(&_head, old_head, new_head); if (new_head == old_head) break; old_head = new_head; }