equal
deleted
inserted
replaced
116 assert(heap->kind() == CollectedHeap::Epsilon, "Not an Epsilon heap"); |
116 assert(heap->kind() == CollectedHeap::Epsilon, "Not an Epsilon heap"); |
117 return (EpsilonHeap*)heap; |
117 return (EpsilonHeap*)heap; |
118 } |
118 } |
119 |
119 |
120 HeapWord* EpsilonHeap::allocate_work(size_t size) { |
120 HeapWord* EpsilonHeap::allocate_work(size_t size) { |
|
121 assert(is_object_aligned(size), "Allocation size should be aligned: " SIZE_FORMAT, size); |
|
122 |
121 HeapWord* res = _space->par_allocate(size); |
123 HeapWord* res = _space->par_allocate(size); |
122 |
124 |
123 while (res == NULL) { |
125 while (res == NULL) { |
124 // Allocation failed, attempt expansion, and retry: |
126 // Allocation failed, attempt expansion, and retry: |
125 MutexLockerEx ml(Heap_lock); |
127 MutexLockerEx ml(Heap_lock); |
166 used / M, |
168 used / M, |
167 used * 100.0 / max_capacity()); |
169 used * 100.0 / max_capacity()); |
168 } |
170 } |
169 } |
171 } |
170 |
172 |
|
173 assert(is_object_aligned(res), "Object should be aligned: " PTR_FORMAT, p2i(res)); |
171 return res; |
174 return res; |
172 } |
175 } |
173 |
176 |
174 HeapWord* EpsilonHeap::allocate_new_tlab(size_t min_size, |
177 HeapWord* EpsilonHeap::allocate_new_tlab(size_t min_size, |
175 size_t requested_size, |
178 size_t requested_size, |
208 } |
211 } |
209 } |
212 } |
210 |
213 |
211 // Always honor boundaries |
214 // Always honor boundaries |
212 size = MAX2(min_size, MIN2(_max_tlab_size, size)); |
215 size = MAX2(min_size, MIN2(_max_tlab_size, size)); |
|
216 |
|
217 // Always honor alignment |
|
218 size = align_up(size, MinObjAlignment); |
213 |
219 |
214 if (log_is_enabled(Trace, gc)) { |
220 if (log_is_enabled(Trace, gc)) { |
215 ResourceMark rm; |
221 ResourceMark rm; |
216 log_trace(gc)("TLAB size for \"%s\" (Requested: " SIZE_FORMAT "K, Min: " SIZE_FORMAT |
222 log_trace(gc)("TLAB size for \"%s\" (Requested: " SIZE_FORMAT "K, Min: " SIZE_FORMAT |
217 "K, Max: " SIZE_FORMAT "K, Ergo: " SIZE_FORMAT "K) -> " SIZE_FORMAT "K", |
223 "K, Max: " SIZE_FORMAT "K, Ergo: " SIZE_FORMAT "K) -> " SIZE_FORMAT "K", |