equal
deleted
inserted
replaced
444 // * They should both be called without holding the Heap_lock. |
444 // * They should both be called without holding the Heap_lock. |
445 // |
445 // |
446 // * All allocation requests for new TLABs should go to |
446 // * All allocation requests for new TLABs should go to |
447 // allocate_new_tlab(). |
447 // allocate_new_tlab(). |
448 // |
448 // |
449 // * All non-TLAB allocation requests should go to mem_allocate() |
449 // * All non-TLAB allocation requests should go to mem_allocate(). |
450 // and mem_allocate() should never be called with is_tlab == true. |
|
451 // |
450 // |
452 // * If either call cannot satisfy the allocation request using the |
451 // * If either call cannot satisfy the allocation request using the |
453 // current allocating region, they will try to get a new one. If |
452 // current allocating region, they will try to get a new one. If |
454 // this fails, they will attempt to do an evacuation pause and |
453 // this fails, they will attempt to do an evacuation pause and |
455 // retry the allocation. |
454 // retry the allocation. |
465 // will satisfy them with a special path. |
464 // will satisfy them with a special path. |
466 |
465 |
467 virtual HeapWord* allocate_new_tlab(size_t word_size); |
466 virtual HeapWord* allocate_new_tlab(size_t word_size); |
468 |
467 |
469 virtual HeapWord* mem_allocate(size_t word_size, |
468 virtual HeapWord* mem_allocate(size_t word_size, |
470 bool is_noref, |
|
471 bool is_tlab, /* expected to be false */ |
|
472 bool* gc_overhead_limit_was_exceeded); |
469 bool* gc_overhead_limit_was_exceeded); |
473 |
470 |
474 // The following three methods take a gc_count_before_ret |
471 // The following three methods take a gc_count_before_ret |
475 // parameter which is used to return the GC count if the method |
472 // parameter which is used to return the GC count if the method |
476 // returns NULL. Given that we are required to read the GC count |
473 // returns NULL. Given that we are required to read the GC count |
1302 // At least until perm gen collection is also G1-ified, at |
1299 // At least until perm gen collection is also G1-ified, at |
1303 // which point this should return false. |
1300 // which point this should return false. |
1304 return true; |
1301 return true; |
1305 } |
1302 } |
1306 |
1303 |
1307 // The boundary between a "large" and "small" array of primitives, in |
|
1308 // words. |
|
1309 virtual size_t large_typearray_limit(); |
|
1310 |
|
1311 // Returns "true" iff the given word_size is "very large". |
1304 // Returns "true" iff the given word_size is "very large". |
1312 static bool isHumongous(size_t word_size) { |
1305 static bool isHumongous(size_t word_size) { |
1313 // Note this has to be strictly greater-than as the TLABs |
1306 // Note this has to be strictly greater-than as the TLABs |
1314 // are capped at the humongous thresold and we want to |
1307 // are capped at the humongous thresold and we want to |
1315 // ensure that we don't try to allocate a TLAB as |
1308 // ensure that we don't try to allocate a TLAB as |