--- old/src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp 2018-03-08 15:53:23.843614606 -0800 +++ new/src/hotspot/share/gc/shared/threadLocalAllocBuffer.hpp 2018-03-08 15:53:23.587615472 -0800 @@ -38,12 +38,11 @@ // time across multiple threads. The park()/unpark() pair is // used to make it available for such multiplexing. // -// Heap sampling is performed via the end/actual_end fields. -// actual_end contains the real end of the tlab allocation, -// whereas end can be set to an arbitrary spot in the tlab to +// Heap sampling is performed via the current_end/allocation_end +// fields. +// allocation_end contains the real end of the tlab allocation, +// whereas current_end can be set to an arbitrary spot in the tlab to // trip the return and sample the allocation. -// slow_path_end is used to track if a fast tlab refill occured -// between slowpath calls. class ThreadLocalAllocBuffer: public CHeapObj { friend class VMStructs; friend class JVMCIVMStructs; @@ -53,7 +52,6 @@ HeapWord* _pf_top; // allocation prefetch watermark HeapWord* _current_end; // allocation end (can be the sampling end point or _allocation_end) HeapWord* _allocation_end; // end for allocations (actual TLAB end, excluding alignment_reserve) - HeapWord* _last_slow_path_end; // last address for slow_path_end (as opposed to _allocation_end) size_t _desired_size; // desired size (including alignment_reserve) size_t _refill_waste_limit; // hold onto tlab if free() is larger than this @@ -78,7 +76,6 @@ void set_start(HeapWord* start) { _start = start; } void set_current_end(HeapWord* current_end) { _current_end = current_end; } void set_allocation_end(HeapWord* ptr) { _allocation_end = ptr; } - void set_last_slow_path_end(HeapWord* ptr) { _last_slow_path_end = ptr; } void set_top(HeapWord* top) { _top = top; } void set_pf_top(HeapWord* pf_top) { _pf_top = pf_top; } void set_desired_size(size_t desired_size) { _desired_size = desired_size; }