Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 1313:664ae0c5e0e5
6755988: G1: assert(new_obj != 0 || ... "should be forwarded")
Summary: A TLAB became large enough to be considered a humongous object allowing multiple objects to be allocated in a humongous region, which violates a basic assumption about humongous regions. The changes ensure that TLABs cannot be regarded as humongous.
Reviewed-by: iveresov, tonyp
author | johnc |
---|---|
date | Thu, 11 Mar 2010 11:44:43 -0800 |
parents | 2a1472c30599 |
children | 79e419e5ea3b |
comparison
equal
deleted
inserted
replaced
1312:94946bdf36bd | 1313:664ae0c5e0e5 |
---|---|
1053 // words. | 1053 // words. |
1054 virtual size_t large_typearray_limit(); | 1054 virtual size_t large_typearray_limit(); |
1055 | 1055 |
1056 // Returns "true" iff the given word_size is "very large". | 1056 // Returns "true" iff the given word_size is "very large". |
1057 static bool isHumongous(size_t word_size) { | 1057 static bool isHumongous(size_t word_size) { |
1058 return word_size >= _humongous_object_threshold_in_words; | 1058 // Note this has to be strictly greater-than as the TLABs |
1059 // are capped at the humongous thresold and we want to | |
1060 // ensure that we don't try to allocate a TLAB as | |
1061 // humongous and that we don't allocate a humongous | |
1062 // object in a TLAB. | |
1063 return word_size > _humongous_object_threshold_in_words; | |
1059 } | 1064 } |
1060 | 1065 |
1061 // Update mod union table with the set of dirty cards. | 1066 // Update mod union table with the set of dirty cards. |
1062 void updateModUnion(); | 1067 void updateModUnion(); |
1063 | 1068 |