X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fprofiler%2FChangeLog;h=2a4e1588da56c6046289121cffb6187bf254ffea;hb=835cc6eda9fb6edc6e51774443dd6cce853dcea2;hp=95a9ff05d313306e27f234af435264e1a4da6a6c;hpb=001c3ac2a7abb90b753063da7f6e5cefcbd04a8b;p=mono.git diff --git a/mono/profiler/ChangeLog b/mono/profiler/ChangeLog index 95a9ff05d31..2a4e1588da5 100644 --- a/mono/profiler/ChangeLog +++ b/mono/profiler/ChangeLog @@ -1,49 +1,350 @@ + +Tue Mar 16 11:20:14 CET 2010 Paolo Molaro + + * mono-profiler-iomap.c: fix some API usage and add a warning + about this code. + +Wed Mar 3 19:17:14 CET 2010 Paolo Molaro + + * mono-profiler-iomap.c: use the normal allocation callback. + +Wed Feb 24 15:55:31 CET 2010 Paolo Molaro + + * Makefile.am, mono-cov.c, mono-profiler-logging.c, + mono-profiler-aot.c: update to the new API/ABI. + +2010-02-13 Zoltan Varga + + * mono-profiler-aot.c (output_image): Emit method names instead of tokens so + the info can be used for different versions of the same assembly. Don't append + the assembly guid to the file names. + +2010-01-11 Zoltan Varga + + * mono-profiler-logging.c (_ProfilerFileWriteBuffer): Use MONO_ZERO_LEN_ARRAY. + Fixes #569806. + +2009-12-11 Marek Habersack + + * mono-profiler-iomap.c: added + + * Makefile.am: added IOMAP profiler + +2009-10-14 Massimiliano Mantione + * mono-profiler-logging.c: Removed MAX_STATISTICAL_CALL_CHAIN_DEPTH + definition (it belongs to the runtime), and implemented support for + different strategies for building call chains in stat mode. + +2009-10-14 Massimiliano Mantione + * mono-profiler-logging.c: Removed useless "domain" parameter from + write_statistical_hit, and consequentely removed a call to + mono_thread_current from write_statistical_data_block (which sometimes + caused crashes on shutdown). + +2009-09-14 Massimiliano Mantione + * mono-profiler-logging.c: Removed the use of signals to control the + profiler and extended the socket based interface to control also + heap snapshots. + +2009-08-21 Massimiliano Mantione + * mono-profiler-logging.c: Changed max depth of call chains to 128. + +2009-08-21 Massimiliano Mantione + * mono-profiler-logging.c: Report all wrapper types. + +2009-08-21 Massimiliano Mantione + * mono-profiler-logging.c: While debugging file writes, also print the + exact number of bytes written to disk. + +2009-08-18 Christian Hergert + + * mono-profiler-aot.c: + * mono-cov.c: Add missing method declarations. + +2009-08-14 Massimiliano Mantione + * mono-profiler-logging.c (disable_profiler): + Flush buffers synchronously so the GUI knows when we are done. + +2009-08-14 Massimiliano Mantione + * mono-profiler-logging.c: + - Added user thread reading commands from a local tcp port. + - Fixed file flushing after writing a block. + - Force full buffer flushing after disabling the profiler. + +2009-08-06 Massimiliano Mantione + * mono-profiler-logging.c: + - Avoid registering the writer thread with the runtime unless when + it must create a heap snapshot. + - Simplified buffer flushing when an appdomain, image or assembly is + unloaded (now it can be done in the current thread). + - During shutdown, moved "code chunk cleanup" is a region of code + that holds the profiler lock. + +2009-07-29 Massimiliano Mantione + * mono-profiler-logging.c: Implemented data structures to keep track + of code buffers produced by the runtime, and used them instead of + jit_info_table_find for the statistical profiler. + This eliminates crashes related to problems with the writer thread and + its registration to the runtime. + +2009-06-18 Massimiliano Mantione + * mono-profiler-logging.c: Removed debugging printf statement. + +2009-06-18 Massimiliano Mantione + * mono-profiler-logging.c: + Added assembly information to classes and wrapper flag to methods. + +2009-05-25 Massimiliano Mantione + * mono-profiler-logging.c (write_thread_data_block): Only emit initial + stack snippet if we are tracking stacks. + +2009-05-25 Massimiliano Mantione + * mono-profiler-logging.c (setup_user_options): Avoid tracking stacks + and emitting allocation caller information if we are already emitting + method enter and exit events. + +2009-04-06 Massimiliano Mantione + * mono-profiler-logging.c: Added monitor contention profiling. + - Changed RESERVE_EVENTS to require a call to the new + COMMIT_RESERVED_EVENTS macro after we have filled the event slots + (this allows to acquire all the event slots atomically). + - Created utility function "save_stack_delta". + - Created "monitor_event" callback. + - renamed "handle_heap_profiling" as "process_gc_event" because it + must be used also to help avoid interferences between garbage + collections and monitor profiling. + +2009-03-23 Massimiliano Mantione + * mono-profiler-logging.c: Removed useless "gc-signal" option (the + newer "heap=" format of the "heap" option does the same thing). + +2009-03-16 Massimiliano Mantione + * mono-profiler-logging.c: When checking if an elf file is valid, + avoid mapping it in memory until we know it's usable (avoids virtual + memory fragmentation issues). + +2009-01-25 Massimiliano Mantione + * mono-profiler-logging.c: Bug fixing. + The issue is that while reading /proc/self/maps is can happen that + the last regions (typically [vsyscall] and [vsdo]) are reported more + than once (or anyway are read more than once, even when usng the plain + "read" call with no buffering), and I found no workaround for this. + So the code must be careful and throw away the duplicates. + - restore_old_regions: work starting from the new regions instead of + the old ones. + - sort_regions: introduce a "throw away the duplicates" pass. + - fix_region_references: added a pass to make sure that the elf files + always reference the new regions and not the old ones. + - refresh_memory_regions: call "sort_regions" before + "restore_old_regions" so we know we have no duplicates. + +2009-01-18 Massimiliano Mantione + * mono-profiler-logging.c: Bug fixing. + - profiler_executable_memory_region_destroy: fixed a cut&paste mistake + causing a double free. + - executable_file_open: allow the code to look at all files, and fix + building of "files->new_files" list. + - executable_file_free: set "file->section_regions" to NULL when + freeing it (for safety). + +2008-12-31 Massimiliano Mantione + * mono-profiler-logging.c: added "save-allocation-caller" option. + +2008-12-30 Massimiliano Mantione + * mono-profiler-logging.c: + - profiler_executable_memory_region_destroy: fixed memory region + unloading. + - executable_file_add_region_reference: likewise. + - executable_file_close: likewise. + - executable_file_open: fixed file name handling. + - parse_map_line: likewise. + - scan_process_regions: likewise. + - statistical_call_chain: exit loop if the writer thread is busy. + +2008-12-11 Massimiliano Mantione + * mono-profiler-logging.c: + - executable_file_open: Proper remember of already opened files. + - ProfilerStatisticalData: use unsigned values so the index never + trips over and becomes negative. + - statistical_call_chain, statistical_hit: likewise. + +2008-12-11 Massimiliano Mantione + * mono-profiler-logging.c: Added defaults to command line options. + +2008-12-01 Massimiliano Mantione + * mono-profiler-logging.c: + - ProfilerThreadStack: added "last_written_frame" and "written_frames" + fields to keep track of the call stacks actually written, so that we + can "replay" the full call stack at the beginning of each event block + (which allows the decoder to read blocks in random order and still see + all the call stacks correctly). + - gc_event: Fixed event creation sequence. + - Improved event logging (debugging) code. + +2008-11-04 Massimiliano Mantione + * mono-profiler-logging.c: + Make sure that stack sections can be fully reconstructed even reading + only one block. + +2008-10-10 Massimiliano Mantione + * mono-profiler-logging.c: + Added "aci" option to emit the object "id" at each allocation. + +2008-10-10 Massimiliano Mantione + * mono-profiler-logging.c: + Added support for handling the stack trace of each allocation event. + - MonoProfilerDirectives: added directive to state that allocations + have stack traces (not strictly needed, but simplifirs the decoder). + - ProfilerEventData: gave one more bit to code (and one less to value). + - MonoProfilerEvents: Added "stack section" event to record stack state. + - ProfilerThreadStack: added last_saved_top to track what we just saved. + - _MonoProfiler::action_flags: Added save_allocation_caller and + save_allocation_stack to state what we do for allocations. + - All "thread_stack_..." functions: Track last_saved_top. + - Added thread_stack_count_unsaved_frames utilty function. + - write_directives_block: handle ALLOCATIONS_HAVE_STACK directive. + - Added write_stack_section_event function. + - write_event: also handle emission of stack sections. + - Reworked all the "STORE_EVENT_..." macros to work on arbitrary event + slots (needed for stack sections), and as a consequence fixed all the + functions that use them. + - object_allocated: save "delta" stack section if needed. + - setup_user_options: handle new "sas" option. + +2008-09-08 Massimiliano Mantione + * Makefile.am: Don't build the profilers if DISABLE_PROFILER is set. + +2008-09-08 Massimiliano Mantione + * mono-profiler-logging.c: + - setup_user_options: made so that the user has to explicitly request + the "f" mode when the "h" is asked, otherwise the number of snapshot + blocks in the file is very confusing. + - Added three icalls to control the profiler from the profiled + application. + +2008-08-28 Zoltan Varga + + * mono-profiler-logging.c (detect_fast_timer): Add missing return type. + +2008-08-21 Massimiliano Mantione + * mono-profiler-logging.c: Added support for correct accounting of + allocations which happened at JIT time. + +2008-08-20 Massimiliano Mantione + * mono-profiler-logging.c: Added directives block, and used it to + state that "allocation attribution" done using the stack tracking (so + that allocation callers are directly written in the log file). + +2008-07-28 Massimiliano Mantione + * mono-profiler-logging.c: Added stack tracking (even if still unused). + +2008-07-28 Massimiliano Mantione + * mono-profiler-logging.c: Fix bug 412473: + - write_statistical_data_block: check if the current MonoThread still + exists, and if not avoid calling mono_jit_info_table_find. + - profiler_shutdown: flush everything in the current thread. + +2008-07-28 Massimiliano Mantione + * mono-profiler-logging.c: Fix the "allocation summaries" feature + (I committed it but it never really worked until now). + +2008-07-04 Massimiliano Mantione + * mono-profiler-logging.c: Emit full type names for loaded classes + (patch by Rodrigo Kumpera). + +2008-07-04 Massimiliano Mantione + * mono-profiler-logging.c: Use the new "runtime initialized" hook. + +2008-07-04 Massimiliano Mantione + * mono-profiler-logging.c: Fix an embarassingly stupid problem with + buffer sizes. + +2008-07-03 Massimiliano Mantione + * mono-profiler-logging.c: Changed the way to wait for the writer + thread to avoid passing an invalid handle to pthread_join. + +2008-06-28 Massimiliano Mantione + * mono-profiler-logging.c: When offloading flushing to the writer + thread, first check that it still exists. + +2008-06-25 Massimiliano Mantione + * mono-profiler-logging.c: Offload more flushing to the writer thread, + and fix the shutdown sequence. + +2008-06-25 Massimiliano Mantione + * mono-profiler-logging.c: Made so that at appdomain unload the + buffers are flushed by the profiler worker thread (which we know + is registered with the runtime). + +2008-06-25 Massimiliano Mantione + * mono-profiler-logging.c: Added more logging code. + +2008-06-25 Massimiliano Mantione + * mono-profiler-logging.c: Record also the domain of each statistical + hit, so that mono_jit_info_table_find works properly. + +2008-06-25 Massimiliano Mantione + * mono-profiler-logging.c: Fixed breakage introduced in r105966 + +2008-06-17 Massimiliano Mantione + * mono-profiler-logging.c: Implemented signal based enable-disable + toggling for the statistical and enter-exit events. + +2008-06-17 Massimiliano Mantione + * mono-profiler-logging.c (write_statistical_hit): Use the proper + domain instead of trying to get one. + +2008-06-16 Massimiliano Mantione + * mono-profiler-logging.c (module_end_load, assembly_end_load): + Properly check the return value of "mono_assembly_fill_assembly_name", + otherwise "mono_stringify_assembly_name" can crash. + 2008-06-16 Massimiliano Mantione - * mono-profiler-oprofile.c: Fix a segfault on shutdown (see Marek's + * mono-profiler-logging.c: Fix a segfault on shutdown (see Marek's fix for the default profiler in r105466, the problem is the same. 2008-06-16 Massimiliano Mantione - * mono-profiler-oprofile.c: Initial implementation of summary report + * mono-profiler-logging.c: Initial implementation of summary report for allocations at each collection. 2008-05-23 Massimiliano Mantione - * mono-profiler-oprofile.c: Fix warnings x86 and remove debugging code. + * mono-profiler-logging.c: Fix warnings x86 and remove debugging code. 2008-05-23 Massimiliano Mantione - * mono-profiler-oprofile.c: Fix the build on x86. + * mono-profiler-logging.c: Fix the build on x86. 2008-05-23 Massimiliano Mantione - * mono-profiler-oprofile.c: Support call chains (backtrace) in the + * mono-profiler-logging.c: Support call chains (backtrace) in the stat profiler. 2008-05-12 Massimiliano Mantione - * mono-profiler-oprofile.c (handle_heap_profiling): Flush all data + * mono-profiler-logging.c (handle_heap_profiling): Flush all data buffers, so that objext allocation events are written before the heap description (which contains the "object free" events). 2008-05-12 Massimiliano Mantione - * mono-profiler-oprofile.c: Added support for a global counter of all + * mono-profiler-logging.c: Added support for a global counter of all garbage collections, so that the file decoder can correlate the events properly. 2008-05-12 Massimiliano Mantione - * mono-profiler-oprofile.c: Fixed a bug that prevented using rdtsc, + * mono-profiler-logging.c: Fixed a bug that prevented using rdtsc, and enabled rdtsc by default,adding a command line option to revert to using gettimeofday. 2008-05-02 Massimiliano Mantione - * mono-profiler-oprofile.c: Turned DEBUG_STATISTICAL_PROFILER off... + * mono-profiler-logging.c: Turned DEBUG_STATISTICAL_PROFILER off... 2008-05-02 Massimiliano Mantione - * mono-profiler-oprofile.c : Rework statistical profiler, adding the + * mono-profiler-logging.c : Rework statistical profiler, adding the ability to scan symbol tables in elf files instead of using dladdr (dladdr skips lots of symbols which this way we get correctly). 2008-04-16 Massimiliano Mantione - * mono-profiler-oprofile.c (gc_event): Fix deadlock condition. + * mono-profiler-logging.c (gc_event): Fix deadlock condition. 2008-04-16 Massimiliano Mantione - * mono-profiler-oprofile.c (write_current_block): Added an incremental + * mono-profiler-logging.c (write_current_block): Added an incremental "counter delta" field to the block header, so that each block has a timestamp directly in the header. This will allow tools to know when a block has been emitted without @@ -55,12 +356,12 @@ do it, and... better now than later. 2008-04-10 Massimiliano Mantione - * mono-profiler-oprofile.c (profiler_heap_scan): removed debugging code + * mono-profiler-logging.c (profiler_heap_scan): removed debugging code and therefore removed unconditional inclusion of signal.h (it is now included anyway on Unix platforms). 2008-04-10 Massimiliano Mantione - * mono-profiler-oprofile.c: Added possibiliy of requesting heap + * mono-profiler-logging.c: Added possibiliy of requesting heap snapshots with a signal (like heap-shot). 2008-04-02 Rodrigo Kumpera @@ -69,33 +370,33 @@ a "raise(SIGTRAL)" and in some platforms must be included. 2008-03-28 Massimiliano Mantione - * mono-profiler-oprofile.c: Added option to append a suffix to the + * mono-profiler-logging.c: Added option to append a suffix to the default file name. 2008-03-27 Massimiliano Mantione - * mono-profiler-oprofile.c: setup_user_options: set default log file + * mono-profiler-logging.c: setup_user_options: set default log file name to the name of the executed application. 2008-03-26 Massimiliano Mantione * Makefile.am: enabled the logging profiler on Linux. 2008-03-26 Massimiliano Mantione - * mono-profiler-oprofile.c: Attach and detach the writer thread. + * mono-profiler-logging.c: Attach and detach the writer thread. 2008-03-25 Massimiliano Mantione - * mono-profiler-oprofile.c: Fixed bug with memory region indexes. + * mono-profiler-logging.c: Fixed bug with memory region indexes. 2008-03-18 Massimiliano Mantione - * mono-profiler-oprofile.c: + * mono-profiler-logging.c: OPEN_FILE(): Fixed file creation. [UN]LOCK_PROFILER(): Removed logging message. 2008-03-11 Massimiliano Mantione - * mono-profiler-oprofile.c: Fixed heap profiler, added a new way to + * mono-profiler-logging.c: Fixed heap profiler, added a new way to get the symbol names for unmanaged functions, and fixed lots of bugs. 2008-01-08 Massimiliano Mantione - * mono-profiler-oprofile.c: First code drop of new logging profiler + * mono-profiler-logging.c: First code drop of new logging profiler (and shamefully forgot to set HAS_OPROFILE to 0...). * Makefile.am: Added logging profiler, but commented in out to avoid breaking the build on Windows.