src/cpu/sparc/vm/vm_version_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/cpu/sparc/vm/vm_version_sparc.cpp Wed Apr 20 16:02:57 2016
--- new/src/cpu/sparc/vm/vm_version_sparc.cpp Wed Apr 20 16:02:57 2016
*** 110,124 ****
--- 110,127 ----
if (AllocatePrefetchStyle != 3 && FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
// Use different prefetch distance without BIS
FLAG_SET_DEFAULT(AllocatePrefetchDistance, 256);
}
if (AllocatePrefetchInstr == 1) {
! // Need a space at the end of TLAB for BIS since it
! // will fault when accessing memory outside of heap.
! // Need extra space at the end of TLAB for BIS, otherwise prefetching
! // instructions will fault (due to accessing memory outside of heap).
+ // The amount of space is the max of the number of lines to
+ // prefetch for array and for instance allocations. (Extra space must be
+ // reserved to accomodate both types of allocations.)
// +1 for rounding up to next cache line, +1 to be safe
! int lines = MAX2(AllocatePrefetchLines, AllocateInstancePrefetchLines) + 2;
int step_size = AllocatePrefetchStepSize;
int distance = AllocatePrefetchDistance;
_reserve_for_allocation_prefetch = (distance + step_size*lines)/(int)HeapWordSize;
}
}
src/cpu/sparc/vm/vm_version_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File