comparison src/share/vm/code/nmethod.cpp @ 4872:aa3d708d67c4

7141200: log some interesting information in ring buffers for crashes Reviewed-by: kvn, jrose, kevinw, brutisso, twisti, jmasa
author never
date Wed, 01 Feb 2012 07:59:01 -0800
parents 436b4a3231bf
children 0382d2b469b2
comparison
equal deleted inserted replaced
4871:f067b4e0e04b 4872:aa3d708d67c4
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, 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.
702 } 702 }
703 if (xtty != NULL) { 703 if (xtty != NULL) {
704 xtty->tail("print_native_nmethod"); 704 xtty->tail("print_native_nmethod");
705 } 705 }
706 } 706 }
707 Events::log("Create nmethod " INTPTR_FORMAT, this);
708 } 707 }
709 708
710 // For dtrace wrappers 709 // For dtrace wrappers
711 #ifdef HAVE_DTRACE_H 710 #ifdef HAVE_DTRACE_H
712 nmethod::nmethod( 711 nmethod::nmethod(
779 } 778 }
780 if (xtty != NULL) { 779 if (xtty != NULL) {
781 xtty->tail("print_dtrace_nmethod"); 780 xtty->tail("print_dtrace_nmethod");
782 } 781 }
783 } 782 }
784 Events::log("Create nmethod " INTPTR_FORMAT, this);
785 } 783 }
786 #endif // def HAVE_DTRACE_H 784 #endif // def HAVE_DTRACE_H
787 785
788 void* nmethod::operator new(size_t size, int nmethod_size) { 786 void* nmethod::operator new(size_t size, int nmethod_size) {
789 // Always leave some room in the CodeCache for I2C/C2I adapters 787 // Always leave some room in the CodeCache for I2C/C2I adapters
887 || CompilerOracle::should_print(_method) 885 || CompilerOracle::should_print(_method)
888 || CompilerOracle::has_option_string(_method, "PrintNMethods"); 886 || CompilerOracle::has_option_string(_method, "PrintNMethods");
889 if (printnmethods || PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers) { 887 if (printnmethods || PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers) {
890 print_nmethod(printnmethods); 888 print_nmethod(printnmethods);
891 } 889 }
892
893 // Note: Do not verify in here as the CodeCache_lock is
894 // taken which would conflict with the CompiledIC_lock
895 // which taken during the verification of call sites.
896 // (was bug - gri 10/25/99)
897
898 Events::log("Create nmethod " INTPTR_FORMAT, this);
899 } 890 }
900 891
901 892
902 // Print a short set of xml attributes to identify this nmethod. The 893 // Print a short set of xml attributes to identify this nmethod. The
903 // output should be embedded in some other element. 894 // output should be embedded in some other element.
1384 1375
1385 assert (!is_locked_by_vm(), "locked methods shouldn't be flushed"); 1376 assert (!is_locked_by_vm(), "locked methods shouldn't be flushed");
1386 assert_locked_or_safepoint(CodeCache_lock); 1377 assert_locked_or_safepoint(CodeCache_lock);
1387 1378
1388 // completely deallocate this method 1379 // completely deallocate this method
1389 EventMark m("flushing nmethod " INTPTR_FORMAT " %s", this, ""); 1380 Events::log(JavaThread::current(), "flushing nmethod " INTPTR_FORMAT, this);
1390 if (PrintMethodFlushing) { 1381 if (PrintMethodFlushing) {
1391 tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT "/Free CodeCache:" SIZE_FORMAT "Kb", 1382 tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT "/Free CodeCache:" SIZE_FORMAT "Kb",
1392 _compile_id, this, CodeCache::nof_blobs(), CodeCache::unallocated_capacity()/1024); 1383 _compile_id, this, CodeCache::nof_blobs(), CodeCache::unallocated_capacity()/1024);
1393 } 1384 }
1394 1385