8069367: Eagerly reclaimed humongous objects left on mark stack

Prevent eager reclaim of objects that might be on mark stack.

Reviewed-by: brutisso, tschatzl
This commit is contained in:
Kim Barrett 2015-04-15 12:16:01 -04:00
parent 71fcf1be02
commit 763048052f
8 changed files with 326 additions and 77 deletions

View file

@ -1104,6 +1104,8 @@ private:
// mark bitmap scan, and so needs to be pushed onto the mark stack.
bool is_below_finger(HeapWord* objAddr, HeapWord* global_finger) const;
template<bool scan> void process_grey_object(oop obj);
public:
// It resets the task; it should be called right at the beginning of
// a marking phase.
@ -1156,7 +1158,7 @@ public:
inline void deal_with_reference(oop obj);
// It scans an object and visits its children.
void scan_object(oop obj);
void scan_object(oop obj) { process_grey_object<true>(obj); }
// It pushes an object on the local queue.
inline void push(oop obj);