-
Bug
-
Resolution: Fixed
-
P3
-
11, 13, 14
-
b14
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8230745 | 13.0.2 | Aleksey Shipilev | P3 | Resolved | Fixed | b02 |
JDK-8230716 | 11.0.6 | Aleksey Shipilev | P3 | Resolved | Fixed | b01 |
TLAB allocation path asks collected heap about the max tlab size currently available. But, in Epsilon code, there is discrepancy: the caller interprets the returned value in bytes, while Epsilon code has the size in words. Every other GC adjusts accordingly, Epsilon should too.
Fix:
diff -r c8bc506106e3 src/hotspot/share/gc/epsilon/epsilonHeap.cpp
--- a/src/hotspot/share/gc/epsilon/epsilonHeap.cpp Thu Sep 05 11:09:12 2019 +0200
+++ b/src/hotspot/share/gc/epsilon/epsilonHeap.cpp Thu Sep 05 11:35:57 2019 +0200
@@ -108,12 +108,12 @@
return memory_pools;
}
size_t EpsilonHeap::unsafe_max_tlab_alloc(Thread* thr) const {
// Return max allocatable TLAB size, and let allocation path figure out
- // the actual TLAB allocation size.
- return _max_tlab_size;
+ // the actual allocation size. Note: result should be in bytes.
+ return _max_tlab_size * HeapWordSize;
}
EpsilonHeap* EpsilonHeap::heap() {
CollectedHeap* heap = Universe::heap();
assert(heap != NULL, "Uninitialized access to EpsilonHeap::heap()");
Fix:
diff -r c8bc506106e3 src/hotspot/share/gc/epsilon/epsilonHeap.cpp
--- a/src/hotspot/share/gc/epsilon/epsilonHeap.cpp Thu Sep 05 11:09:12 2019 +0200
+++ b/src/hotspot/share/gc/epsilon/epsilonHeap.cpp Thu Sep 05 11:35:57 2019 +0200
@@ -108,12 +108,12 @@
return memory_pools;
}
size_t EpsilonHeap::unsafe_max_tlab_alloc(Thread* thr) const {
// Return max allocatable TLAB size, and let allocation path figure out
- // the actual TLAB allocation size.
- return _max_tlab_size;
+ // the actual allocation size. Note: result should be in bytes.
+ return _max_tlab_size * HeapWordSize;
}
EpsilonHeap* EpsilonHeap::heap() {
CollectedHeap* heap = Universe::heap();
assert(heap != NULL, "Uninitialized access to EpsilonHeap::heap()");
- backported by
-
JDK-8230716 Epsilon does not extend TLABs to max size
- Resolved
-
JDK-8230745 Epsilon does not extend TLABs to max size
- Resolved