src/share/vm/memory/threadLocalAllocBuffer.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
7079329 Cdiff src/share/vm/memory/threadLocalAllocBuffer.hpp
src/share/vm/memory/threadLocalAllocBuffer.hpp
Print this page
*** 122,142 ****
inline HeapWord* allocate(size_t size);
// Reserve space at the end of TLAB
static size_t end_reserve() {
int reserve_size = typeArrayOopDesc::header_size(T_INT);
! if (AllocatePrefetchStyle == 3) {
! // BIS is used to prefetch - we need a space for it.
! // +1 for rounding up to next cache line +1 to be safe
! int lines = AllocatePrefetchLines + 2;
! int step_size = AllocatePrefetchStepSize;
! int distance = AllocatePrefetchDistance;
! int prefetch_end = (distance + step_size*lines)/(int)HeapWordSize;
! reserve_size = MAX2(reserve_size, prefetch_end);
}
- return reserve_size;
- }
static size_t alignment_reserve() { return align_object_size(end_reserve()); }
static size_t alignment_reserve_in_bytes() { return alignment_reserve() * HeapWordSize; }
// Return tlab size or remaining space in eden such that the
// space is large enough to hold obj_size and necessary fill space.
--- 122,133 ----
inline HeapWord* allocate(size_t size);
// Reserve space at the end of TLAB
static size_t end_reserve() {
int reserve_size = typeArrayOopDesc::header_size(T_INT);
! return MAX2(reserve_size, VM_Version::reserve_for_allocation_prefetch());
}
static size_t alignment_reserve() { return align_object_size(end_reserve()); }
static size_t alignment_reserve_in_bytes() { return alignment_reserve() * HeapWordSize; }
// Return tlab size or remaining space in eden such that the
// space is large enough to hold obj_size and necessary fill space.
src/share/vm/memory/threadLocalAllocBuffer.hpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File