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