equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
62 static void verify_if_often() PRODUCT_RETURN; |
62 static void verify_if_often() PRODUCT_RETURN; |
63 |
63 |
64 static void mark_scavenge_root_nmethods() PRODUCT_RETURN; |
64 static void mark_scavenge_root_nmethods() PRODUCT_RETURN; |
65 static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN; |
65 static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN; |
66 |
66 |
|
67 static int _codemem_full_count; |
|
68 |
67 public: |
69 public: |
68 |
70 |
69 // Initialization |
71 // Initialization |
70 static void initialize(); |
72 static void initialize(); |
|
73 |
|
74 static void report_codemem_full(); |
71 |
75 |
72 // Allocation/administration |
76 // Allocation/administration |
73 static CodeBlob* allocate(int size, bool is_critical = false); // allocates a new CodeBlob |
77 static CodeBlob* allocate(int size, bool is_critical = false); // allocates a new CodeBlob |
74 static void commit(CodeBlob* cb); // called when the allocated CodeBlob has been filled |
78 static void commit(CodeBlob* cb); // called when the allocated CodeBlob has been filled |
75 static int alignment_unit(); // guaranteed alignment of all CodeBlobs |
79 static int alignment_unit(); // guaranteed alignment of all CodeBlobs |
153 static void log_state(outputStream* st); |
157 static void log_state(outputStream* st); |
154 |
158 |
155 // The full limits of the codeCache |
159 // The full limits of the codeCache |
156 static address low_bound() { return (address) _heap->low_boundary(); } |
160 static address low_bound() { return (address) _heap->low_boundary(); } |
157 static address high_bound() { return (address) _heap->high_boundary(); } |
161 static address high_bound() { return (address) _heap->high_boundary(); } |
|
162 static address high() { return (address) _heap->high(); } |
158 |
163 |
159 // Profiling |
164 // Profiling |
160 static address first_address(); // first address used for CodeBlobs |
165 static address first_address(); // first address used for CodeBlobs |
161 static address last_address(); // last address used for CodeBlobs |
166 static address last_address(); // last address used for CodeBlobs |
162 static size_t capacity() { return _heap->capacity(); } |
167 static size_t capacity() { return _heap->capacity(); } |
184 static void make_marked_nmethods_zombies(); |
189 static void make_marked_nmethods_zombies(); |
185 static void make_marked_nmethods_not_entrant(); |
190 static void make_marked_nmethods_not_entrant(); |
186 |
191 |
187 // tells how many nmethods have dependencies |
192 // tells how many nmethods have dependencies |
188 static int number_of_nmethods_with_dependencies(); |
193 static int number_of_nmethods_with_dependencies(); |
|
194 |
|
195 static int get_codemem_full_count() { return _codemem_full_count; } |
189 }; |
196 }; |
190 |
197 |
191 #endif // SHARE_VM_CODE_CODECACHE_HPP |
198 #endif // SHARE_VM_CODE_CODECACHE_HPP |