< prev index next >

src/share/vm/code/codeCache.hpp

Print this page
rev 10188 : [mq]: scavenge_nmethods_auto_prune

*** 114,123 **** --- 114,127 ---- static size_t bytes_allocated_in_freelists(); static int allocated_segments(); static size_t freelists_length(); + static void set_scavenge_root_nmethods(nmethod* nm) { _scavenge_root_nmethods = nm; } + static void prune_scavenge_root_nmethods(); + static void unlink_scavenge_root_nmethod(nmethod* nm, nmethod* prev); + public: // Initialization static void initialize(); // Allocation/administration
*** 151,167 **** // If "unloading_occurred" is true, then unloads (i.e., breaks root links // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading" // to "true" iff some code got unloaded. static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred); static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN; ! static void scavenge_root_nmethods_do(CodeBlobClosure* f); static nmethod* scavenge_root_nmethods() { return _scavenge_root_nmethods; } - static void set_scavenge_root_nmethods(nmethod* nm) { _scavenge_root_nmethods = nm; } static void add_scavenge_root_nmethod(nmethod* nm); static void drop_scavenge_root_nmethod(nmethod* nm); - static void prune_scavenge_root_nmethods(); // Printing/debugging static void print(); // prints summary static void print_internals(); static void print_memory_overhead(); --- 155,175 ---- // If "unloading_occurred" is true, then unloads (i.e., breaks root links // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading" // to "true" iff some code got unloaded. static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred); static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN; ! ! // Apply f to every live code blob in scavengable nmethods. Prune nmethods ! // from the list of scavengable nmethods if f->fix_relocations() and a nmethod ! // no longer has scavengable oops. If f->fix_relocations(), then f must copy ! // objects to their new location immediately to avoid fixing nmethods on the ! // basis of the old object locations. ! static void scavenge_root_nmethods_do(CodeBlobToOopClosure* f); static nmethod* scavenge_root_nmethods() { return _scavenge_root_nmethods; } static void add_scavenge_root_nmethod(nmethod* nm); static void drop_scavenge_root_nmethod(nmethod* nm); // Printing/debugging static void print(); // prints summary static void print_internals(); static void print_memory_overhead();
< prev index next >