164 static int nmethod_count(int code_blob_type);
165
166 // GC support
167 static void gc_epilogue();
168 static void gc_prologue();
169 static void verify_oops();
170 // If "unloading_occurred" is true, then unloads (i.e., breaks root links
171 // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading"
172 // to "true" iff some code got unloaded.
173 static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
174 static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN;
175
176 // Apply f to every live code blob in scavengable nmethods. Prune nmethods
177 // from the list of scavengable nmethods if f->fix_relocations() and a nmethod
178 // no longer has scavengable oops. If f->fix_relocations(), then f must copy
179 // objects to their new location immediately to avoid fixing nmethods on the
180 // basis of the old object locations.
181 static void scavenge_root_nmethods_do(CodeBlobToOopClosure* f);
182
183 static nmethod* scavenge_root_nmethods() { return _scavenge_root_nmethods; }
184 static void add_scavenge_root_nmethod(nmethod* nm);
185 static void drop_scavenge_root_nmethod(nmethod* nm);
186
187 // Printing/debugging
188 static void print(); // prints summary
189 static void print_internals();
190 static void print_memory_overhead();
191 static void verify(); // verifies the code cache
192 static void print_trace(const char* event, CodeBlob* cb, int size = 0) PRODUCT_RETURN;
193 static void print_summary(outputStream* st, bool detailed = true); // Prints a summary of the code cache usage
194 static void log_state(outputStream* st);
195 static const char* get_code_heap_name(int code_blob_type) { return (heap_available(code_blob_type) ? get_code_heap(code_blob_type)->name() : "Unused"); }
196 static void report_codemem_full(int code_blob_type, bool print);
197
198 // Dcmd (Diagnostic commands)
199 static void print_codelist(outputStream* st);
200 static void print_layout(outputStream* st);
201
202 // The full limits of the codeCache
203 static address low_bound() { return _low_bound; }
|
164 static int nmethod_count(int code_blob_type);
165
166 // GC support
167 static void gc_epilogue();
168 static void gc_prologue();
169 static void verify_oops();
170 // If "unloading_occurred" is true, then unloads (i.e., breaks root links
171 // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading"
172 // to "true" iff some code got unloaded.
173 static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred);
174 static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN;
175
176 // Apply f to every live code blob in scavengable nmethods. Prune nmethods
177 // from the list of scavengable nmethods if f->fix_relocations() and a nmethod
178 // no longer has scavengable oops. If f->fix_relocations(), then f must copy
179 // objects to their new location immediately to avoid fixing nmethods on the
180 // basis of the old object locations.
181 static void scavenge_root_nmethods_do(CodeBlobToOopClosure* f);
182
183 static nmethod* scavenge_root_nmethods() { return _scavenge_root_nmethods; }
184 // register_scavenge_root_nmethod() conditionally adds the nmethod to the list
185 // if it is not already on the list and has a scavengeable root
186 static void register_scavenge_root_nmethod(nmethod* nm);
187 static void add_scavenge_root_nmethod(nmethod* nm);
188 static void drop_scavenge_root_nmethod(nmethod* nm);
189
190 // Printing/debugging
191 static void print(); // prints summary
192 static void print_internals();
193 static void print_memory_overhead();
194 static void verify(); // verifies the code cache
195 static void print_trace(const char* event, CodeBlob* cb, int size = 0) PRODUCT_RETURN;
196 static void print_summary(outputStream* st, bool detailed = true); // Prints a summary of the code cache usage
197 static void log_state(outputStream* st);
198 static const char* get_code_heap_name(int code_blob_type) { return (heap_available(code_blob_type) ? get_code_heap(code_blob_type)->name() : "Unused"); }
199 static void report_codemem_full(int code_blob_type, bool print);
200
201 // Dcmd (Diagnostic commands)
202 static void print_codelist(outputStream* st);
203 static void print_layout(outputStream* st);
204
205 // The full limits of the codeCache
206 static address low_bound() { return _low_bound; }
|