mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 03:58:21 +00:00
8374680: ZGC: Convert zGeneration to use Atomic<T>
Reviewed-by: stefank, tschatzl
This commit is contained in:
parent
fef85ff932
commit
b59f49a1c3
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -56,7 +56,6 @@
|
||||
#include "logging/log.hpp"
|
||||
#include "memory/universe.hpp"
|
||||
#include "prims/jvmtiTagMap.hpp"
|
||||
#include "runtime/atomicAccess.hpp"
|
||||
#include "runtime/continuation.hpp"
|
||||
#include "runtime/handshake.hpp"
|
||||
#include "runtime/safepoint.hpp"
|
||||
@ -298,33 +297,33 @@ bool ZGeneration::is_relocate_queue_active() const {
|
||||
|
||||
void ZGeneration::reset_statistics() {
|
||||
assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
|
||||
_freed = 0;
|
||||
_promoted = 0;
|
||||
_compacted = 0;
|
||||
_freed.store_relaxed(0u);
|
||||
_promoted.store_relaxed(0u);
|
||||
_compacted.store_relaxed(0u);
|
||||
}
|
||||
|
||||
size_t ZGeneration::freed() const {
|
||||
return _freed;
|
||||
return _freed.load_relaxed();
|
||||
}
|
||||
|
||||
void ZGeneration::increase_freed(size_t size) {
|
||||
AtomicAccess::add(&_freed, size, memory_order_relaxed);
|
||||
_freed.add_then_fetch(size, memory_order_relaxed);
|
||||
}
|
||||
|
||||
size_t ZGeneration::promoted() const {
|
||||
return _promoted;
|
||||
return _promoted.load_relaxed();;
|
||||
}
|
||||
|
||||
void ZGeneration::increase_promoted(size_t size) {
|
||||
AtomicAccess::add(&_promoted, size, memory_order_relaxed);
|
||||
_promoted.add_then_fetch(size, memory_order_relaxed);
|
||||
}
|
||||
|
||||
size_t ZGeneration::compacted() const {
|
||||
return _compacted;
|
||||
return _compacted.load_relaxed();;
|
||||
}
|
||||
|
||||
void ZGeneration::increase_compacted(size_t size) {
|
||||
AtomicAccess::add(&_compacted, size, memory_order_relaxed);
|
||||
_compacted.add_then_fetch(size, memory_order_relaxed);
|
||||
}
|
||||
|
||||
ConcurrentGCTimer* ZGeneration::gc_timer() const {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -37,6 +37,7 @@
|
||||
#include "gc/z/zWeakRootsProcessor.hpp"
|
||||
#include "gc/z/zWorkers.hpp"
|
||||
#include "memory/allocation.hpp"
|
||||
#include "runtime/atomic.hpp"
|
||||
|
||||
class ThreadClosure;
|
||||
class ZForwardingTable;
|
||||
@ -70,9 +71,9 @@ protected:
|
||||
ZRelocate _relocate;
|
||||
ZRelocationSet _relocation_set;
|
||||
|
||||
volatile size_t _freed;
|
||||
volatile size_t _promoted;
|
||||
volatile size_t _compacted;
|
||||
Atomic<size_t> _freed;
|
||||
Atomic<size_t> _promoted;
|
||||
Atomic<size_t> _compacted;
|
||||
|
||||
Phase _phase;
|
||||
uint32_t _seqnum;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user