mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8030177: G1: Enable TLAB resizing
Reviewed-by: tschatzl, stefank, jmasa
This commit is contained in:
parent
81ba2e32c0
commit
9b29efeb63
20 changed files with 141 additions and 74 deletions
|
@ -320,6 +320,21 @@ void CollectedHeap::flush_deferred_store_barrier(JavaThread* thread) {
|
|||
assert(thread->deferred_card_mark().is_empty(), "invariant");
|
||||
}
|
||||
|
||||
size_t CollectedHeap::max_tlab_size() const {
|
||||
// TLABs can't be bigger than we can fill with a int[Integer.MAX_VALUE].
|
||||
// This restriction could be removed by enabling filling with multiple arrays.
|
||||
// If we compute that the reasonable way as
|
||||
// header_size + ((sizeof(jint) * max_jint) / HeapWordSize)
|
||||
// we'll overflow on the multiply, so we do the divide first.
|
||||
// We actually lose a little by dividing first,
|
||||
// but that just makes the TLAB somewhat smaller than the biggest array,
|
||||
// which is fine, since we'll be able to fill that.
|
||||
size_t max_int_size = typeArrayOopDesc::header_size(T_INT) +
|
||||
sizeof(jint) *
|
||||
((juint) max_jint / (size_t) HeapWordSize);
|
||||
return align_size_down(max_int_size, MinObjAlignment);
|
||||
}
|
||||
|
||||
// Helper for ReduceInitialCardMarks. For performance,
|
||||
// compiled code may elide card-marks for initializing stores
|
||||
// to a newly allocated object along the fast-path. We
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue