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