< prev index next >

src/share/vm/code/nmethod.hpp

Print this page
rev 13243 : 8180932: Parallelize safepoint cleanup
Summary: Provide infrastructure to do safepoint cleanup tasks using parallel worker threads
Reviewed-by: dholmes, rehn, dcubed, thartmann

*** 134,144 **** // not_entrant method removal. Each mark_sweep pass will update // this mark to current sweep invocation count if it is seen on the // stack. An not_entrant method can be removed when there are no // more activations, i.e., when the _stack_traversal_mark is less than // current sweep traversal index. ! long _stack_traversal_mark; // The _hotness_counter indicates the hotness of a method. The higher // the value the hotter the method. The hotness counter of a nmethod is // set to [(ReservedCodeCacheSize / (1024 * 1024)) * 2] each time the method // is active while stack scanning (mark_active_nmethods()). The hotness --- 134,144 ---- // not_entrant method removal. Each mark_sweep pass will update // this mark to current sweep invocation count if it is seen on the // stack. An not_entrant method can be removed when there are no // more activations, i.e., when the _stack_traversal_mark is less than // current sweep traversal index. ! volatile jlong _stack_traversal_mark; // The _hotness_counter indicates the hotness of a method. The higher // the value the hotter the method. The hotness counter of a nmethod is // set to [(ReservedCodeCacheSize / (1024 * 1024)) * 2] each time the method // is active while stack scanning (mark_active_nmethods()). The hotness
*** 394,405 **** void set_scavenge_root_link(nmethod *n) { _scavenge_root_link = n; } public: // Sweeper support ! long stack_traversal_mark() { return _stack_traversal_mark; } ! void set_stack_traversal_mark(long l) { _stack_traversal_mark = l; } // implicit exceptions support address continuation_for_implicit_exception(address pc); // On-stack replacement support --- 394,405 ---- void set_scavenge_root_link(nmethod *n) { _scavenge_root_link = n; } public: // Sweeper support ! jlong stack_traversal_mark() { return OrderAccess::load_acquire(&_stack_traversal_mark); } ! void set_stack_traversal_mark(jlong l) { OrderAccess::release_store(&_stack_traversal_mark, l); } // implicit exceptions support address continuation_for_implicit_exception(address pc); // On-stack replacement support
< prev index next >