--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Mon Mar 15 02:56:45 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Thu Mar 11 11:44:43 2010 -0800
@@ -1055,7 +1055,12 @@
// Returns "true" iff the given word_size is "very large".
static bool isHumongous(size_t word_size) {
- return word_size >= _humongous_object_threshold_in_words;
+ // Note this has to be strictly greater-than as the TLABs
+ // are capped at the humongous thresold and we want to
+ // ensure that we don't try to allocate a TLAB as
+ // humongous and that we don't allocate a humongous
+ // object in a TLAB.
+ return word_size > _humongous_object_threshold_in_words;
}
// Update mod union table with the set of dirty cards.