This commit is contained in:
Dmitry Samersoff 2016-05-24 10:03:07 +00:00
commit ac8a504622
2 changed files with 7 additions and 10 deletions

View File

@ -216,8 +216,10 @@ void ThreadLocalAllocBuffer::startup_initialization() {
_global_stats = new GlobalTLABStats(); _global_stats = new GlobalTLABStats();
// Need extra space at the end of TLAB, otherwise prefetching #ifdef COMPILER2
// instructions will fault (due to accessing memory outside of heap). // If the C2 compiler is present, extra space is needed at the end of
// TLABs, otherwise prefetching instructions generated by the C2
// compiler will fault (due to accessing memory outside of heap).
// The amount of space is the max of the number of lines to // The amount of space is the max of the number of lines to
// prefetch for array and for instance allocations. (Extra space must be // prefetch for array and for instance allocations. (Extra space must be
// reserved to accommodate both types of allocations.) // reserved to accommodate both types of allocations.)
@ -227,11 +229,14 @@ void ThreadLocalAllocBuffer::startup_initialization() {
// AllocatePrefetchInstr==1). To be on the safe side, however, // AllocatePrefetchInstr==1). To be on the safe side, however,
// extra space is reserved for all combinations of // extra space is reserved for all combinations of
// AllocatePrefetchStyle and AllocatePrefetchInstr. // AllocatePrefetchStyle and AllocatePrefetchInstr.
//
// If the C2 compiler is not present, no space is reserved.
// +1 for rounding up to next cache line, +1 to be safe // +1 for rounding up to next cache line, +1 to be safe
int lines = MAX2(AllocatePrefetchLines, AllocateInstancePrefetchLines) + 2; int lines = MAX2(AllocatePrefetchLines, AllocateInstancePrefetchLines) + 2;
_reserve_for_allocation_prefetch = (AllocatePrefetchDistance + AllocatePrefetchStepSize * lines) / _reserve_for_allocation_prefetch = (AllocatePrefetchDistance + AllocatePrefetchStepSize * lines) /
(int)HeapWordSize; (int)HeapWordSize;
#endif
// During jvm startup, the main (primordial) thread is initialized // During jvm startup, the main (primordial) thread is initialized
// before the heap is initialized. So reinitialize it now. // before the heap is initialized. So reinitialize it now.

View File

@ -89,14 +89,6 @@ public class TestOptionsWithRanges {
*/ */
excludeTestMaxRange("CICompilerCount"); excludeTestMaxRange("CICompilerCount");
/*
* JDK-8156679
* Temporarily exclude from range testing as the range is not
* valid for all platforms
*/
excludeTestRange("AllocatePrefetchLines");
excludeTestRange("AllocateInstancePrefetchLines");
/* /*
* JDK-8136766 * JDK-8136766
* Temporarily remove ThreadStackSize from testing because Windows can set it to 0 * Temporarily remove ThreadStackSize from testing because Windows can set it to 0