< prev index next >
src/share/vm/code/codeCache.cpp
Print this page
*** 1308,1330 ****
}
}
}
// A CodeHeap is full. Print out warning and report event.
void CodeCache::report_codemem_full(int code_blob_type, bool print) {
// Get nmethod heap for the given CodeBlobType and build CodeCacheFull event
CodeHeap* heap = get_code_heap(code_blob_type);
assert(heap != NULL, "heap is null");
if ((heap->full_count() == 0) || print) {
// Not yet reported for this heap, report
if (SegmentedCodeCache) {
! warning("%s is full. Compiler has been disabled.", get_code_heap_name(code_blob_type));
! warning("Try increasing the code heap size using -XX:%s=", get_code_heap_flag_name(code_blob_type));
} else {
! warning("CodeCache is full. Compiler has been disabled.");
! warning("Try increasing the code cache size using -XX:ReservedCodeCacheSize=");
}
ResourceMark rm;
stringStream s;
// Dump code cache into a buffer before locking the tty,
{
--- 1308,1348 ----
}
}
}
// A CodeHeap is full. Print out warning and report event.
+ PRAGMA_DIAG_PUSH
+ PRAGMA_FORMAT_NONLITERAL_IGNORED
void CodeCache::report_codemem_full(int code_blob_type, bool print) {
// Get nmethod heap for the given CodeBlobType and build CodeCacheFull event
CodeHeap* heap = get_code_heap(code_blob_type);
assert(heap != NULL, "heap is null");
if ((heap->full_count() == 0) || print) {
// Not yet reported for this heap, report
if (SegmentedCodeCache) {
! ResourceMark rm;
! stringStream msg1_stream, msg2_stream;
! msg1_stream.print("%s is full. Compiler has been disabled.",
! get_code_heap_name(code_blob_type));
! msg2_stream.print("Try increasing the code heap size using -XX:%s=",
! get_code_heap_flag_name(code_blob_type));
! const char *msg1 = msg1_stream.as_string();
! const char *msg2 = msg2_stream.as_string();
!
! log_warning(codecache)(msg1);
! log_warning(codecache)(msg2);
! warning(msg1);
! warning(msg2);
} else {
! const char *msg1 = "CodeCache is full. Compiler has been disabled.";
! const char *msg2 = "Try increasing the code cache size using -XX:ReservedCodeCacheSize=";
!
! log_warning(codecache)(msg1);
! log_warning(codecache)(msg2);
! warning(msg1);
! warning(msg2);
}
ResourceMark rm;
stringStream s;
// Dump code cache into a buffer before locking the tty,
{
*** 1349,1358 ****
--- 1367,1377 ----
event.set_unallocatedCapacity(heap->unallocated_capacity());
event.set_fullCount(heap->full_count());
event.commit();
}
}
+ PRAGMA_DIAG_POP
void CodeCache::print_memory_overhead() {
size_t wasted_bytes = 0;
FOR_ALL_NMETHOD_HEAPS(heap) {
CodeHeap* curr_heap = *heap;
< prev index next >