2009-01-20 David Smith PR 9673. * task_finder.c (struct stap_task_finder_target): Added 'vm_events' field. (stap_register_task_finder_target): Sets vm_events if a vm_callback is present. (__stp_task_finder_cleanup): Only detaches engines on the main __stp_task_finder_list linked list. (__stp_call_callbacks): New function. (__stp_call_vm_callbacks): New function. (__stp_utrace_attach_match_filename): Calls __stp_call_callbacks() to call callbacks. (__stp_utrace_task_finder_target_death): Ditto. (__stp_utrace_task_finder_target_quiesce): Calls __stp_call_callbacks() and __stp_call_vm_callbacks() to call callbacks. (__stp_call_vm_callbacks_with_vma): Renamed from __stp_target_call_vm_callback. (__stp_utrace_task_finder_target_syscall_exit): Calls __stp_call_vm_callbacks() to call vm callbacks. (stap_start_task_finder): Instead of a utrace engine for every task_finder_target, there is now one utrace engine for all targets with the same path or pid. 2009-01-13 Jim Keniston PR 7082. * uprobes2/uprobes.c: On exec, free up outstanding uretprobe_instances and tick down the uproc's ref-count accordingly, so the (old image's) uproc goes away as desired. 2009-01-12 Wenji Huang * transport/symbols.c (_stp_sort): Adapt it to 2.6.29. 2009-01-06 Frank Ch. Eigler PR9699. * autoconf-task-uid.c: New test. 2008-12-21 Stan Cox * sduprobes.h (STAP_PROBE): Put block around probe point. 2008-12-16 Stan Cox * sduprobes.h (STAP_PROBE): Add synthetic reference to probe label. 2008-12-09 Frank Ch. Eigler * time.c (_stp_gettimeofday_ns): Protect some more against freq=0. 2008-12-08 Wenji Huang * uprobes2/uprobes_x86.c (handle_riprel_insn): Fix the warning. 2008-12-04 Stan Cox * sduprobes.c (STAP_PROBE_START): Remove. * sduprobes.h (STAP_PROBE_START): Remove. (DTRACE_PROBE): New. 2008-11-26 Stan Cox * sduprobes.h (STAP_PROBE1): Add USE_STAP_DEBUGINFO_PROBE. 2008-11-26 Frank Ch. Eigler PR 4886. * sym.c (_stp_module_check): Perform assertive build-id checking for kernel versions >= 2.6.27. 2008-11-26 Frank Ch. Eigler * autoconf-synchronize-sched.c: New file. 2008-11-25 Frank Ch. Eigler PR 7046. * task_finder.c (__stp_utrace_task_finder_target_quiesce): Only issue vm_callbacks for process main threads. 2008-11-24 Wenji Huang From Srikar Dronamraju: * runtime.h: Use for_each_cpu_mask always. 2008-11-11 Stan Cox * sduprobes.c: New file. * sduprobes.h: New file. 2008-11-17 Wenji Huang * runtime.h: Rename for_each_cpu to stp_for_each_cpu for 2.6.28. * counter.c: Ditto. * map-stat.c: Ditto. * map.c: Ditto. * pmap-gen.c: Ditto. * stat.c: Ditto. * transport/procfs.c: Ditto. 2008-11-04 David Smith PR 5274. * syscall.h: Added s390 task_finder support. From Jim Keniston, PR 5274. * uprobes/uprobes_s390.h (arch_get_cur_sp): New function. (arch_predict_sp_at_ret): Ditto. 2008-11-04 Frank Ch. Eigler From Masami Hiramatsu , PR 6028. * regs-ia64.c (bspcache): Expand documentation. 2008-10-28 Frank Ch. Eigler From Jim Keniston: * autoconf-oneachcpu-retry.c: Tweak #include's for broader compatibility. 2008-10-24 Josh Stone * autoconf-hrtimer-getset-expires.c: New file. 2008-10-17 Wenji Huang * task_finder_vma.c (__stp_tf_vma_get_free_entry): Initialize entry. 2008-10-07 Frank Ch. Eigler PR 4886. * sym.c (_stp_module_check): Tweak & simplify build-id checking. Weaken consequences of mismatch temporarily due to fedora bug. * sym.h: Eliminate special cased values of module->notes_sect. 2008-10-06 Mark Wielaard * utrace_compatibility.h: Add workaround for fedora 9 2.6.26 kernels. 2008-10-06 Wenji Huang PR 4886 * sym.h (_stp_module): Add several fields to store build-id. * sym.c (_stp_module_check): New function to check build-id. * staprun/staprun.c (send_relocation_kernel): Send build-id of runtime kernel if there. * transport/symbols.c (_stp_do_relocation): Update note section. (_stp_section_is_interesting): No filter to .note.gnu.build-id. 2008-10-03 Mark Wielaard * procfs.c (_stp_rmdir_proc_module): Remove debug output from warning. 2008-10-03 Mark Wielaard * procfs.c (_stp_rmdir_proc_module): Usage count warning depends on kernel version. 2008-10-02 Tim Moore * addr-map.c (add_bad_addr_entry): Fix bugs in allocating a new table and copying old entries into the new table. 2008-09-30 Tim Moore * addr-map.c (add_bad_addr_entry): Rewrite allocation of address table to simplify locking and eliminate a race condition. 2008-09-26 David Smith * task_finder.c (__STP_ATTACHED_TASK_EVENTS): Removed UTRACE_STOP, which isn't needed anymore. 2008-09-25 David Smith * task_finder.c (__stp_utrace_attach): Added action flag to know to request the thread to be stopped or not. (stap_utrace_attach): Now just calls __stp_utrace_attach(). (__stp_utrace_task_finder_target_quiesce): Handles utrace_set_events() errors properly. * utrace_compatibility.h (enum utrace_resume_action): Added utrace_resume_action enum. (utrace_control): Added UTRACE_STOP support. (utrace_engine_put): New. (utrace_barrier): New. 2008-09-17 Frank Ch. Eigler PR 6487, 6504. From Masami Hiramatsu * print_new.c (stp_print_flush): Use new utt_reserve(). 2008-09-12 Masami Hiramatsu BZ 6028 * regs-ia64.c (bspcache): Use REG_IP instead of pp to check probe address. 2008-09-12 David Smith BZ 6755 * task_finder.c: Added 'inuse' count to know when handlers are still running. (__stp_utrace_task_finder_report_clone): If state isn't correct, detach. Increase 'inuse' count when starting, decrement when exiting. (__stp_utrace_task_finder_report_exec): Ditto. (__stp_utrace_task_finder_target_death): Ditto. (__stp_utrace_task_finder_target_quiesce): Increase 'inuse' count when starting, decrement when exiting. (__stp_utrace_task_finder_target_syscall_entry): Ditto. (__stp_utrace_task_finder_target_syscall_exit): Ditto. (stap_stop_task_finder): Wait until all callbacks are finished. 2008-09-10 Frank Ch. Eigler * runtime.h (STP_USE_FRAME_POINTER): Remove architecture #if's. All will activate it if CONFIG_FRAME_POINTER unless STP_USE_DWARF_UNWINDER. * stack-i386.c: (__stp_stack_print): Handle !DWARF and !FRAME configuration. 2008-09-10 Mark Wielaard * sym.h (_stp_module): Rename module_base to dwarf_module_base. * unwind.c (adjustStartLoc): Document and use dwarf_module_base. 2008-09-10 Mark Wielaard * runtime.h (CONFIG_FRAME_POINTER): Don't enable when STP_USE_DWARF_UNWINDER is already defined. 2008-09-10 Mark Wielaard * sym.h (_stp_module): Add module_base field. * unwind.c (adjustStartLoc): New function. (_stp_search_unwind_hdr): Use adjustStartLoc. (unwind): Likewise. 2008-09-10 Mark Wielaard * unwind.c (unwind): Use _stp_mod_sec_lookup to get module and unwind tables. * runtime.h (STP_USE_FRAME_BUFFER): Disable by default for now. * stack-x86_64.c (__stp_stack_print): Add levels to _stp_stack_print_fallback call. 2008-09-09 Masami Hiramatsu * regs-ia64.c (__ia64_fetch_register): Return the address of the register. (ia64_fetch_register): Use __ia64_fetch_register. * syscall.h (____stp_user_syscall_arg): Use __ia64_fetch_register. (__stp_user_syscall_arg): Wrapping ____stp_user_syscall_arg to pass the unwind address cache. * task_finder.c (__stp_utrace_task_finder_target_syscall_): Added dummy unwind address cache. 2008-09-09 Masami Hiramatsu * syscall.h: Added ia64 support. 2008-09-09 Mark Wielaard * sym.c (_stp_mod_sec_lookup): New function, extracted from _stp_kallsyms_lookup. 2008-09-09 Mark Wielaard * sym.c (_stp_kallsyms_lookup): Correct this_section_offset calculation. 2008-09-08 Tim Moore PR 1288 * addr-map.c: New file with functions for looking up addresses * loc2c-runtime.h (deref, store_deref): Use lookup_bad_addr to avoid dereferencing known dangerous addresses. * runtime.h: Include addr-map.c. 2008-09-06 Frank Ch. Eigler PR 6445 * task_finder.c (stap_start_task_finder): When _stp_target is set (stap -c or -x mode), restrict initial utrace attach iteration to target process only. 2008-09-01 Frank Ch. Eigler * task_finder.c: Move CONFIG_UTRACE assertion here. * task_finder_vma.c (__stp_tf_add_vma): Make printk conditional. 2008-08-29 David Smith * task_finder.c (__stp_utrace_attach_match_filename): Don't call the callback when the interesting thread is found, call it when the tread is quiesced. (stap_start_task_finder): Ditto. (__stp_utrace_task_finder_target_quiesce): Call the callback. 2008-08-26 David Smith * autoconf-d_path-path.c: New file. * task_finder.c (__stp_get_mm_path): Uses STAPCONF_DPATH_PATH instead of a kernel version check to determine how to call d_path(). (__stp_utrace_task_finder_target_quiesce): Ditto. (__stp_target_call_vm_callback): Ditto. 2008-08-21 David Smith * task_finder.c (__stp_tf_vm_cb): Added task finder target parameter. (__stp_utrace_attach_match_filename): Updated task finder callback call. (__stp_utrace_task_finder_target_death): Ditto. (__stp_utrace_task_finder_target_quiesce): Ditto. (__stp_target_call_vm_callback): Ditto. (__stp_utrace_task_finder_target_syscall_exit): Ditto. (stap_start_task_finder): Ditto. 2008-08-20 David Smith * task_finder.c: Supports original and new utrace interfaces. * utrace_compatibility.h (utrace_attach_task): Compatibility layer for original utrace interface. * task_finder.c (__stp_utrace_task_finder_target_syscall_entry): Handles mmap2 (as well as mmap). (__stp_utrace_task_finder_target_syscall_exit): Ditto. * syscall.h: Added defines for mmap and mmap2. 2008-08-19 David Smith PR 6841 * task_finder.c (__stp_utrace_task_finder_target_quiesce): Quiesces thread before turning on syscall tracing. 2008-08-14 Frank Ch. Eigler PR 6842. * task_finder.c (__stp_utrace_task_finder_target_death): Tolerate null tsk->signal. 2008-08-12 David Smith PR 6445 (partial) * task_finder.c (stap_register_task_finder_target): Handles probing all threads. (__stp_utrace_attach_match_filename): Ditto. (stap_start_task_finder): Ditto. 2008-08-08 David Smith * task_finder.c (stap_utrace_detach): New function. (stap_utrace_detach_ops): Calls stap_utrace_detach(). (__stp_utrace_attach_match_filename): Ditto. * task_finder.c (__stp_tf_vm_cb): Added calls to save/delete vma information. * task_finder_vma.c (__stp_tf_vma_map_hash): New function. (__stp_tf_get_vma_map_entry_internal): Ditto. (stap_add_vma_map_info): Ditto. (stap_remove_vma_map_info): Ditto. (stap_find_vma_map_info): Ditto. 2008-07-24 Josh Stone * runtime/autoconf-module-nsections.c: removed * runtime/autoconf-oneachcpu-retry.c: added 2008-07-21 David Smith * task_finder_vma.c (__stp_tf_vma_initialize): New function to initialize the free list. (__stp_tf_vma_put_free_entry): Puts a vma entry back on the free list. (__stp_tf_add_vma): Instead of allocating a vma entry, grab one from the free list by calling __stp_tf_vma_put_free_entry(). (__stp_tf_remove_vma_entry): Instead of freeing a vma entry, call __stp_tf_vma_put_free_entry() to put it on the free list instead. * task_finder.c (stap_start_task_finder): Calls __stp_tf_vma_initialize(). 2008-07-18 Frank Ch. Eigler BZ 442528, From Masami Hiramatsu * regs-ia64.c (ia64_stap_get_arbsp): New function. 2008-07-17 Frank Ch. Eigler * sym.c (_stp_kallsyms_lookup, _stp_module_relocate): Add multiple-section-per-module support. * sym.h (_stp_section): New type for separately relocatable _stp_module pieces. 2008-07-12 Frank Ch. Eigler PR 6738. * loc2c-runtime.h: #include {asm,linux}/uaccess.h as autoconf'd. * unwind/i386.h (user_mode_vm, FIX_VDSO): #ifdef for older kernels. * unwind/x86_64.h (VSYSCALL_START): speculative #ifdef for same. * unwind/unwind.h (BUILD_BUG_ON_ZER): Ditto. 2008-07-10 Frank Ch. Eigler PR 6736. * sym.c (_stp_module_relocate): Generalized to search all _stp_module[]s. (_stp_kallsyms_lookup_name): Gone. (_stp_find_module_by_addr): Rewritten. (_stp_get_unwind_info): Temporarily gone. * sym.h (_stp_module): Simplify structure. * unwind.c: Adapt just enough to compile with eliminated elements. * probes.stp: Removed unused file. 2008-07-09 Mark Wielaard PR 6732 * autoconf-real-parent.c: New file. * task_finder.c (__stp_utrace_task_finder_report_exec): Define real_parent using STAPCONF_REAL_PARENT. Undefine when no longer needed. 2008-07-01 David Smith * task_finder.c (__stp_get_mm_path): Corrected error return code. (__stp_utrace_attach_match_tsk): Ignores ENOENT error from __stp_get_mm_path(). (stap_start_task_finder): Ditto. 2008-06-30 David Smith * task_finder.c (stap_utrace_detach_ops): Removed check to see if thread has a mm (in the case where a thread isn't quite dead yet). (stap_utrace_attach): Minor error handling improvement. (__stp_utrace_attach_match_tsk): Ditto. 2008-06-24 David Smith From: Srinivasa DS * syscall.h: Added powerpc support. 2008-06-23 David Smith * task_finder.c (__stp_utrace_task_finder_target_quiesce): Fixed vm_callback offset by shifting it left PAGE_SHIFT bits. (__stp_target_call_vm_callback): Ditto. (__stp_utrace_task_finder_target_syscall_exit): Ditto. * task_finder.c (__stp_utrace_task_finder_report_exec): Handles relative exec paths correctly. * task_finder_vma.c (__stp_tf_vma_hash): Improved determination of whether this is a 64-bit platform. * syscall.h: Handles kernels with older style register definitions. * task_finder.c (__stp_tf_vm_cb): New function. (stap_register_task_finder_target): Sets up syscall entry and syscall exit handlers. (__stp_find_file_based_vma): New function. (__stp_utrace_task_finder_target_syscall_entry): New function. Saves vma information off at syscall entry. (__stp_target_call_vm_callback): New function. (__stp_utrace_task_finder_target_syscall_exit): New function. Handles changes to memory maps based on information saved at syscall entry. * syscall.h: New file containing syscall function. * task_finder_vma.c: New file containing saved vma information handling functions. * regs.h: Removed trailing semicolons from macro definitions. 2008-06-17 David Smith * task_finder.c (__stp_utrace_attach_match_filename): Uses new __STP_ATTACHED_TASK_EVENTS macro to determine which events to set on a newly found process based on whether the stap_task_finder_target structure has a vm_callback defined. (stap_start_task_finder): Ditto. 2008-06-16 David Smith * task_finder.c (stap_start_task_finder): Improved callback handling. 2008-06-10 David Smith * task_finder.c (struct stap_task_finder_target): Added vm_callback public field. (stap_register_task_finder_target): Sets up .report_quiesce handler. (__stp_utrace_task_finder_target_quiesce): New function. 2008-06-09 David Smith * task_finder.c (__stp_utrace_task_finder_report_exec): Handles 2.6.25 kernels. 2008-06-06 David Smith * task_finder.c: Added some debug logic. Use '-DDEBUG_TASK_FINDER' to enable. (stap_utrace_attach): Renamed from '__stp_utrace_attach'. (__stp_utrace_attach_match_filename): Calls callback with notification that this is a process or thread event. (__stp_utrace_attach_match_tsk): Ditto. (__stp_utrace_task_finder_report_clone): Ditto. (__stp_utrace_task_finder_report_exec): Ditto. (stap_utrace_task_finder_report_death): Ditto. (stap_start_task_finder): Ditto. (stap_stop_task_finder): Added debug logic. 2008-05-29 Stan Cox * map.c (print_keytype): Remove. (print_valtype): Remove. (_stp_map_printn): Remove. (_stp_map_print): Remove. (_stp_pmap_printn): Remove. * stat-common.c (_stp_stat_print_valtype): Remove. * stat.c (__stp_stat_print): Remove. (_stp_stat_print_cpu): Remove. (_stp_stat_print): Remove. * Makefile: Delete. * tests: Delete. * probes: Delete. 2008-05-28 David Smith * task_finder.c (__stp_utrace_attach_match_filename): Added register_p parameter, which is passed on to the callback. Only adds death notification if register_p is 1. If register_p is 0, removes death notification. (__stp_utrace_attach_match_tsk): Moved code from __stp_utrace_task_finder_report_clone that handles the details of grabbing a task's path. (__stp_utrace_task_finder_report_clone): Calls new __stp_utrace_attach_match_tsk(). (__stp_utrace_task_finder_report_exec): Notifies upper layer that it might need to detach from newly exec'ed process.` 2008-05-27 Josh Stone PR 6432 * loc2c-runtime.h (kread, kwrite, deref, store_deref): Add architecture-neutral implementations, using probe_kernel_* facilites (controlled by autoconf). * autoconf-probe-kernel.c: test for above. 2008-05-21 David Smith * task_finder.c (__stp_utrace_attach_match_filename): Added event_flag parameter of event to pass to callback. (__stp_utrace_task_finder_target_death): Ditto. (__stp_utrace_task_finder_report_clone): Calls __stp_utrace_attach_match_filename() with new argument. (__stp_utrace_task_finder_report_exec): Ditto. (stap_start_task_finder): Calls callback with an invalid event_flag since this callback call isn't related to an event. 2008-05-16 David Smith PR 6499. * task_finder.c (stap_register_task_finder_target): Added error check. (__stp_utrace_task_finder_report_clone): Ditto. (stap_utrace_detach_ops): Uses do_each_thread/while_each_thread instead of for_each_process (which only iterated among process group leaders instead of all threads). (stap_start_task_finder): Ditto. 2008-05-08 David Smith PR 6500. * task_finder.c (__stp_utrace_task_finder_report_exec): Moved attach logic to __stp_utrace_attach_match_filename(). (__stp_utrace_attach_match_filename): New function. (__stp_utrace_task_finder_report_clone): Calls __stp_utrace_attach_match_filename() to attach to newly cloned threads. 2008-05-06 Masami Hiramatsu PR 5648 * print_old.c (stp_print_flush): Fix unaligned access warning on ia64. * print_new.c (stp_print_flush): Ditto. 2008-05-06 Masami Hiramatsu PR 5648 * vsprintf.c (_stp_vsnprintf): Fix memcpy's endianess issue. 2008-05-05 Frank Ch. Eigler PR 6481. * time.c (__stp_time_timer_callback): Reenable irq's before mod_timer. 2008-05-05 David Smith * task_finder.c (stap_utrace_detach_ops): Make sure we ignore /sbin/init. (__stp_utrace_attach): Added function to handle details of attaching a utrace engine. (__stp_utrace_task_finder_report_clone): Calls __stp_utrace_attach. (__stp_utrace_task_finder_report_exec): Ditto. (stap_start_task_finder): Ditto. 2008-04-30 Masami Hiramatsu PR 5648 From Shaohua Li * vsprintf.c (_stp_vsnprintf): Fix unaligned access warning on ia64. 2008-04-29 David Smith * task_finder.c: Made more robust by ensuring that all utrace attaches have a corresponding utrace detach. 2008-04-28 Frank Ch. Eigler * runtime.h (TEST_MODE): Remove. 2008-04-25 David Smith From Srinivasa * task_finder.c (__stp_get_mm_path): Fixed kernel 2.6.25 change. 2008-04-24 David Smith * task_finder.c (__stp_get_mm_path): Made kernel 2.6.25 changes. 2008-04-16 David Smith * task_finder.c (__stp_get_mm_path): Made kernel 2.6.18 changes. 2008-04-15 David Smith PR 5961 (partial) * task_finder.c (stap_start_task_finder): When an interesting thread is found that is already running, make sure to set up thread death notification. 2008-04-15 hunt * print.c (_stp_pbuf_full): Delete. 2008-04-15 hunt * stack-x86_64.c (_stp_stack_print_fallback): Add levels. (__stp_stack_print): Count levels properly. 2008-04-15 Martin Hunt Finish support for limits on backtrace depth. * runtime.h (MAXTRACE): Default to 20. * stack.c (_stp_stack_print): Call __stp_stack_print with levels set properly. * sym.c (_stp_func_print): Return a value indicating if something was printed. Support for i386 and x86_64 on 2.6.25 kernel * unwind/i386.h: Support unified registers on 2.6.25. Remove unused frame stuff, including STACK_*. * stack-i386.c (__stp_stack_print): Support unified registers on 2.6.25. * regs.h (REG_FP): Define for i386. 2008-04-15 Frank Ch. Eigler PR 6410. * unwind.c, unwind.h: Make body conditional in STP_USE_DWARF_UNWINDER. * stack-x86_64.c (__stp_stack_print): Tolerate !unwinder. 2008-04-15 Frank Ch. Eigler PR 6405 * autoconf-module-nsections.c: New file. 2008-04-15 Frank Ch. Eigler * unwind/i386.h (STACK_BOTTOM, STACK_TOP): Comment out these unused definitions, for they collide with some kernels (2.6.25-0.121.rc5.git4 rawhide). 2008-04-13 Frank Ch. Eigler * print.c (_stp_pbuf_full): New function to note full print buffer. * stack-{i386,x86_64}.c: Use it in all stack-searching loops, to impose another limit against unbounded iteration. 2008-03-31 Martin Hunt * runtime.h (STP_USE_DWARF_UNWINDER): Define. 2008-04-04 Masami Hiramatsu PR 6028 * loc2c-runtime.h (fetch_register): Call ia64_fetch_register with the address of c->unwaddr. * regs-ia64.c (ia64_fetch_register): Don't unwind stack if it has already unwound stack in same probe. 2008-03-30 Martin Hunt * runtime.h (STP_USE_FRAME_POINTER): Define when frame pointers are available in the kernel and can be used. * stack-arm.c: Use STP_USE_FRAME_POINTER. * stack-i386.c: Ditto. * unwind/i386.h: Ditto. * unwind/x86_64.h: Ditto. 2008-04-04 David Smith PR 5961 (partial) * task_finder.c: New file. 2008-03-28 Martin Hunt * copy.c (_stp_read_address): New function. Safely read kernel or userspace. 2008-03-26 Martin Hunt Fixes to get i386 working. * unwind.c (unwind): Fix types in debug print. * stack-i386.c (_stp_stack_print_fallback): New function. (__stp_stack_print): Call _stp_stack_print_fallback() if unwinder appears to fail. 2008-03-25 Martin Hunt * unwind.c (unwind): Return a positive number to indicate that unwinding is done. 2008-04-01 Frank Ch. Eigler * lket/*: Belatedly remove retired LKET code. 2008-03-17 Eugene Teo PR 5947 * autoconf-tsc-khz.c: Remove "&& defined(__i386__)" to make the test more pessimistic. 2008-03-14 Masami Hiramatsu PR 3542 * autoconf-unregister-kprobes.c : New file. 2008-03-10 Dave Brolley PR5189 * vsprintf.c (_stp_vsnprintf): Arguments for dynamic width and precision are of type 'int' again. * loc2c-runtime.h (deref_string): Copy the data only if dst is not NULL. (deref_buffer): New macro. 2008-02-27 Martin Hunt * sym.h (_stp_module): Add text_size, lock, and unwind data pointer. * sym.c (_stp_find_module_by_addr): New function. (_stp_kallsyms_lookup): Call _stp_find_module_by_addr(). (_stp_get_unwind_info): New. * runtime.h: Move debug macros to debug.h. Include it. * debug.h: New file. * map.c: Update debug calls. * map-gen.c: Update debug calls. * pmap-gen.c: Update debug calls. * mempool.c: New file. 2008-02-27 Dave Brolley PR5189 * vsprintf.c (_stp_vsnprintf): Extract arguments of type int64_t for dynamic width and precision. Implement width and precision correctly for the %b format specifier. Implement the %m specifier. 2008-02-06 Masami Hiramatsu * stack-ia64.c (__stp_show_stack_sym): Skip printing symbol if (ip == REG_IP(regs)). 2008-01-29 Martin Hunt * io.c (_stp_vlog): Use get_cpu() instead of smp_processor_id() because this function can get called with interrupts enabled. 2008-01-29 Martin Hunt * alloc.c (struct _stp_malloc_type): Remove redundant field. 2008-01-28 Martin Hunt * alloc.c: Use DEFINE_SPINLOCK. * counter.c: Ditto. * pmap-gen.c: Ditto. * print_new.c: Ditto. * stat.c: Ditto. 2008-01-27 Frank Ch. Eigler * stack-i386.c (__stp_stack_print): Correct #elif->#else typo. 2008-01-14 Martin Hunt * print.c (_stp_print_kernel_info): New function. (all): Call stp memory functions. * alloc.c: Rewrite to track allocated memory if DEBUG_MEM is defined. * counter.c, map.c, stat.c, time.c: Call stp memory functions. 2007-11-14 Zhaolei From Cai Fei * regs-ia64.c (ia64_fetch_register): Fix the bug of fetching register 12 on IA64. 2007-11-12 Martin Hunt * print.c (_stp_print): Rewrite to eliminate the strlen() call and save a bit of time. 2007-11-09 Masami Hiramatsu PR3858 * print.c: Add -DRELAY_HOST= and -DRELAY_GUEST= options support. (_stp_print_flush): Disable irqs if -DRELAY_* option is specified. * print_old.c: Export stp_print_flush to other modules if the -DRELAY_HOST option is specified. * print_new.c: Ditto. 2007-10-25 Mike Mason * stat-common.c: Allow histogram bucket elision to be turned off with -DHIST_ELISION=. Also cleaned up looping code to prevent unnecessary interation over non-existent buckets. 2007-10-17 Masami Hiramatsu * autoconf-tsc-khz.c: Not to be compiled if the kernel version is younger than 2.6.23 on i386. 2007-10-17 Martin Hunt PR5000 * vsprintf.c: Remove _stp_endian. 2007-10-15 Masami Hiramatsu * autoconf-tsc-khz.c: Fix a bug to be configured correctly. 2007-10-09 Martin Hunt * user/*: Removed obsolete userspace test files. 2007-10-02 Frank Ch. Eigler PR 5041 From : * loc2c-runtime.h (store_register): Add value as macro parameter where missing. 2007-09-24 Masami Hiramatsu PR 3916 * time.c (stp_time_t): Rename cpufreq to freq. (__stp_get_freq): Rename from __stp_estimate_cpufreq. Use tsc_khz or cpu_khz if it is available. Use itc_freq on ia64. (__stp_ktime_get_real_ts): New function to get current kernel time. (__stp_time_timer_callback): Call __stp_ktime_get_real_ts to get base time. (__stp_init_time): Ditto. (__stp_constant_freq): New function to check the processor has constant frequency timestamp counter. (_stp_kill_time): Don't use the cpufreq notifier if the processor has constant frequency timestamp counter. (_stp_init_time): Ditto. * autoconf-ktime-get-real.c : New file. * autoconf-constant-tsc.c: Ditto. * autoconf-tsc-khz.c: Ditto. 2007-09-22 Frank Ch. Eigler PR 5057. * stat-common.c (_stp_stat_print_histogram): Elide consecutive zero rows beyond 2*STAT_ELISION+1. (STAT_ELISION): New parameter, default 2. 2007-09-21 Martin Hunt PR 5024 * stat-common.c (_stp_stat_print_histogram): Change overflow and underflow handling for linear histograms. (__stp_stat_add): For linear histograms, use under and over buckets. 2007-09-19 Martin Hunt PR 5042 * procfs.c (_stp_rmdir_proc_module): Warn if removal of /proc/systemtap/module is deferred. Do not defer removal of /proc/systemtap. (_stp_mkdir_proc_module): Call path_release(). Set ownership of /proc/systemtap/module to force deletion to be deferred. (_stp_create_procfs): Set owner of all path components. 2007-09-14 Martin Hunt * procfs.c (_stp_create_procfs): Be sure that directories in the path are really directories and not files. 2007-09-13 David Smith * procfs.c (_stp_procfs_dir_lookup): Added 'const' qualifier to 'dir' parameter. (_stp_create_procfs): Added 'const' qualifier to 'path' parameter. Removed debug prints. (_stp_close_procfs): Removed debug prints. 2007-09-12 Martin Hunt * map-stat.c (_stp_map_new_hstat_log): Set buckets to HIST_LOG_BUCKETS. (_stp_pmap_new_hstat_log): Ditto. (_stp_map_new_hstat_linear): Call _stp_stat_calc_buckets(). (_stp_pmap_new_hstat_linear): Ditto. * stat.h (STP_MAX_BUCKETS): Define.. (HIST_LOG_BUCKETS): Define. * stat.c (_stp_stat_init): Call _stp_stat_calc_buckets(). * stat-common.c (_stp_stat_calc_buckets): New function. Common bucket calculation and error reporting code. (_stp_bucket_to_val): New function. (_stp_val_to_bucket): Renamed and now handles negative numbers. (_stp_stat_print_histogram): Handle negative values in log histograms. (__stp_stat_add): Cleanup.. * map-gen.c (_stp_map_new): Remove buckets param for HIST_LOG. * pmap-gen.c (_stp_pmap_new): Ditto. 2007-09-10 Martin Hunt * procfs.c: New file. Common runtime procfs functions. 2007-08-20 Martin Hunt * stack.c (_stp_kta): Removed. 2007-08-20 Masami Hiramatsu * stack-x86_64.c: Fix backtrace to use the value of stack register instead of its address. 2007-08-17 Martin Hunt * bench2/bench.rb: Send HUP to stapio, instead of staprun. 2007-08-10 Josh Stone PR 4593 * loc2c-runtime.h (deref, store_deref): Set an error message with the pointer value and name into last_error, since it's hard to determine the details once you've already jumped to deref_fault. 2007-07-09 Martin Hunt * sym.h (STP_MAX_MODULES): Raise limit to 256. 2007-07-06 Martin Hunt * stat-common.c (__stp_stat_add): Fix calculations for linear histogram buckets. * stat.c (_stp_stat_init): Check for interval too small. 2007-07-05 Eugene Teo * regs.c (_stp_print_regs): #ifdef CONFIG_CPU_CP15 instead. 2007-07-02 Martin Hunt * sym.c (_stp_kallsyms_lookup): Improve heuristic for determining when a pointer is in a function. (_stp_func_print): New function. * stack-i386.c, stack-x86_64.c: Remove obsolete unwind code. Use _stp_func_print(). 2007-06-22 Frank Ch. Eigler * string.c (_stp_text_str): Fix handling of embedded " and \ characters. 2007-06-21 David Smith * lket/b2a/Makefile.in: Regenerated with automake 1.10. 2007-06-15 Martin Hunt From Quentin Barnes. * loc2c-runtime.h: Latest arm marcos. * stack-arm.c (__stp_stack_print): Add a cast. * regs.c (_stp_ret_addr): Define for arm. 2007-06-07 Martin Hunt PR 4075 fix from Ananth Mavinakayanahalli * string.h (_stp_get_user): Define. * string.c (_stp_text_str): Use _stp_get_user(). 2007-05-30 Martin Hunt Patch from Quentin Barnes. * arith.c: Add arm support for 64-bit division. * copy.c: Enable arm support. * loc2c-runtime.h: Ditto. * regs.[ch]: Ditto. * stack.c: Include stack-arm.c. * stack-arm.c: New file. * time.c (_stp_gettimeofday_ns): hack for arm. See PR 4569. 2007-05-29 Frank Ch. Eigler PR 4458 * print_new.c (_stp_print_flush): Use interrupt-disabling spinlock variants. 2007-05-29 Frank Ch. Eigler PR 2224 * map.h (NEED_MAP_LOCKS): New config macro, defaults to 0. (MAP_GET_CPU, MAP_PUT_CPU): Wrappers, default to ~no-op. * map.c (_stp_pmap_clear,agg): Use them. * pmap-gen.c (_stp_pmap_new,set,add,get_cpu,get,del): Ditto. 2007-05-15 Martin Hunt * vsprintf.c: Add comment about %p. * regs.c, stack*.c, sym.c: Fix %p calls. 2007-04-27 Martin Hunt * runtime.h: Improve check for debugfs in kernel. 2007-04-27 Frank Ch. Eigler * autoconf-inode-private.c: New file from hunt. 2007-04-04 Sébastien Dugué * runtime/lket/b2a/lket_b2a.c: Fix percpu files parsing for percpu_header transport changes. 2007-04-05 Martin Hunt * bench2/var_bench, var.st, const.st: New test. 2007-04-05 Martin Hunt * bench2/bench.rb (Stapbench::run): Check result code of "killall staprun". If it is nonzero, something happened to staprun. Print an error. (Stapbench::load): Define STP_NO_OVERLOAD. * bench2/README: Update. * bench2/print_bench: New set of tests. 2007-03-22 Frank Ch. Eigler * sym.c (_stp_module_relocate): Tolerate empty section string. 2007-03-21 Martin Hunt * sym.h: Declare _stp_module_relocate. * sym.c (_stp_module_relocate): Add comments, reformat, add a way for "last" cached values to be cleared when modules are removed. (_stp_symbol_print): Simplify and remove static buffer. (_stp_symbol_snprint): Ditto. 2007-03-21 Martin Hunt * map.c (_stp_map_init): Fix signed vs unsigned comparison warning. 2007-03-20 Frank Ch. Eigler PR 4224. * sym.c (_stp_module_relocate): Support kernel relocations. 2007-03-19 Frank Ch. Eigler * autoconf-hrtimer-rel.c: New file. 2007-03-18 Martin Hunt * stack.c, string.c, sym.c, transport/symbols.c: Fix some signed vs unsigned comparison warnings. 2007-03-14 Martin Hunt * stpd: Remove directory. * relayfs: Remove directory. 2007-03-14 Martin Hunt * bench2/bench.rb: Updated to work with new transport and new itest.c. * bench2/Makefile: Updated for new itest.c * bench2/itest.c: Rewritten to use multiple threads and automatically divide the workload among the threads. * print.c (_stp_print_flush): Move to print_new.c and print_old.c. * print_new.c: New file containing _stp_print_flush() for the new transport. * print_old.c: Ditto for old transport. * runtime.h (STP_OLD_TRANSPORT): Define (errk): Define. (MAXSTRINGLEN): Define if not already defined. * io.c (_stp_vlog): Use _stp_ctl_write(). 2007-03-12 Frank Ch. Eigler PR 4179. Based on patch from Vasily Averin : * time.c (_stp_init_time): Recover from partial failures. 2007-03-01 David Wilder * loc2c-runtime.h: rewrote s390x version of __stp_put_asm and __stp_put_asm to do single byte writes. 2007-02-27 David Wilder * loc2c-runtime.h: Added defines for EX_TABLE needed by older s390 kernels that do not already have it defined. 2007-02-07 Martin Hunt * stack-ppc64.c (__stp_stack_print): Remove an old reference to the string length and instead limit backtraces to MAXBACKTRACE. * stack.c: Define MAXBACKTRACE 2007-02-06 Josh Stone * loc2c-runtime.h (kread): Let it work with const types. 2007-01-31 Martin Hunt * string.c (_stp_string_init): Deleted. (_stp_sprintf): Deleted. (_stp_vsprintf): Deleted. (_stp_string_cat_cstr): Deleted. (_stp_string_cat_string): Deleted. (_stp_string_cat_char): Deleted. (_stp_string_ptr): Deleted. (_stp_string_cat): Deleted. (_stp_snprintf): Moved from vsprintf.c. (_stp_vscnprintf): Moved from vsprintf.c. * string.h (STP_STRING_SIZE): Deleted. (STP_NUM_STRINGS): Deleted. Remove all references to type "String". * vsprintf.c (_stp_vscnprintf): Moved to string.c. (_stp_snprintf): Moved to string.c * sym.c (_stp_symbol_sprint): Replaced with _stp_symbol_print, which writes to the print buffer. (_stp_symbol_sprint_basic): Replaced with _stp_symbol_snprint. * runtime.h: Include io.c. * stat-common.c: Use new _stp_print* functions. * stat.c: Ditto. * regs.c: Renamed to regs-ia64.c. * current.c: Renamed regs.c. * regs-ia64.c: New file (renamed from regs.c). * stack.c (_stp_stack_sprint): Renamed _stp_stack_print and now just prints to the print buffer. Calls __stp_stack_print instead of __stp_stack_sprint. (_stp_stack_snprint): New function. Calls _stp_stack_print and then copies the print buffer into a string. (_stp_stack_printj): Deleted. (_stp_ustack_sprint): Deleted. * stack-*.c: Rewritten to print instead of writing to strings. Uses new _stp_print* functions. * print.c (_stp_printf): Create new function instead of macro. (_stp_print): Ditto. (_stp_print_char): New function. * map.c: Use _stp_print() and _stp_print_char() instead of _stp_print_cstr(). * io.c (_stp_vlog): Use _stp_print() instead of _stp_string_cat_cstr(). * copy.c (_stp_string_from_user): Deleted. 2007-01-30 Martin Hunt * io.c (_stp_vlog): Use dynamic percpu allocations instead of very wasteful static allocations. * print.c (_stp_print_init): Do percpu allocations for io.c. (_stp_print_cleanup): Free percpu allocations. * string.c (_stp_sprintf): Overflow check needed to be >= instead of >. 2007-01-30 Martin Hunt * alloc.c (_stp_alloc_percpu): Don't implement our own; just call __alloc_percpu with appropriate args for the OS version. (_stp_free_percpu): Delete. * map.c (_stp_map_init): When calling kmalloc_node, first call cpu_to_node() to get the proper node number. * stat.c (_stp_stat_del): Call free_percpu() instead of _stp_free_percpu(). 2007-01-29 Martin Hunt * alloc.c (_stp_kmalloc): New function. Call kmalloc with the correct flags and track usage. (_stp_kzalloc): Ditto. * map.c: Use new alloc calls. * print.c: Ditto. * stat.c: Ditto. * time.c: Ditto. 2007-01-25 Roland McGrath * loc2c-runtime.h (store_deref): Use "Zr" constraint for 64-bit case. 2007-01-22 Josh Stone * loc2c-runtime.h (kread, kwrite): Tweaks to work better with reading and writing pointer values. 2007-01-22 Martin Hunt * map-gen.c (_stp_map_exists): New. Check for membership only. 2007-01-19 Josh Stone PR 3079 * loc2c-runtime.h (kread, kwrite): New macros to safely read/write values from kernel pointers. This includes a workaround for 64-bit numbers on i386 platforms. 2007-01-10 Martin Hunt PR 3708 * map.c (str_copy): Check for NULL pointers. (_new_map_set_int64): Don't check val for 0. (_new_map_set_str): Don't check val for NULL. * map-gen.c (VAL_IS_ZERO): Removed. (_stp_map_del): New. (__stp_map_set): Don't check for zero. * pmap-gen.c (VAL_IS_ZERO): Removed. (_stp_pmap_del): New. (__stp_pmap_set): Don't check for zero. 2006-12-20 Martin Hunt * runtime.h: Include mm.h. 2006-12-20 Li Guanglei * runtime/lket/b2a/lket_b2a.c: bugfix for NULL appname when search appNameTree. 2006-12-18 David Smith * lket/b2a/Makefile.in: Regenerated. This needed to be done since lket/b2a/README was removed but lket/b2a/Makefile.in still had a reference to it which was causing "make distdir" to fail. 2006-12-18 Frank Ch. Eigler PR 3079 * loc2c-runtime.h (deref, store_deref): Fork x86 and x86-64 variants. Remove dysfunctional 64-bit ops from x86. 2006-12-15 Frank Ch. Eigler * print.c (_stp_print_flush): Add a likely() marker to the hot path. 2006-12-13 Frank Ch. Eigler * regs.h (s390x REG_IP): Parenthesize for warning-free builds. 2006-12-08 Josh Stone * runtime.h (param_set_int64_t, param_get_int64_t, param_check_int64_t): New functions to allow taking module parameters directly as int64_t values. 2006-12-06 Josh Stone * time.c (stp_timer_reregister): Add a global to control whether the gettimeofday timer should restart itself, for clean shutdown. (__stp_time_timer_callback): Check the global. (_stp_kill_time, _stp_init_time): Set the global. (_stp_gettimeofday_ns): Switch to preempt_enable_no_resched. * time.c (__stp_time_cpufreq_callback): Use the cpu# from the notifier. (_stp_init_time): No need to disable preemption around cpufreq init. 2006-12-04 Martin Hunt * bench2/bench.rb: Fixes for the latest runtime changes. 2006-11-21 Li Guanglei * runtime/lket/b2a/lket_b2a.[ch]: add b2a_error() and change the error return codes. 2006-11-19 Li Guanglei * runtime/lket/b2a/lket_b2a.[ch]: bugfix for #3536 2006-11-15 Martin Hunt * alloc.c (STP_ALLOC_FLAGS): Define. Cleanup ifdefs. * map.c: Use STP_ALLOC_FLAGS. * stat.c: ditto. 2006-11-10 Li Guanglei * transport/procfs.c: bugfix of the obsolete buf_info and consumed_info. 2006-11-09 Martin Hunt * sym.h: Change int to int32_t. 2006-11-09 Li Guanglei * runtime/lket/b2a/lket_b2a.[ch]: add options to control the output data fields of lket.out 2006-11-02 Martin Hunt * sym.c (_stp_module_relocate): New function. Needed by the translator to relocate module symbols. (_stp_kallsyms_lookup_name): Rewrite to use new symbol structs. (_stp_kallsyms_lookup): Ditto. * sym.h: Declare the structures and arrays that contain all the symbol and module information. * io.c (_stp_vlog, _stp_dbug): Make first parameter const. * runtime.h: Update prototype for _stp_dbug. 2006-10-27 Thang Nguyen * runtime/regs.c: patch from Bibo Mao for fixing the return value on IA64 (bz #3404). 2006-10-24 Li Guanglei * runtime/lket/b2a/lket_b2a.[ch]: be sync with LKET hookid rearrangement. 2006-10-23 Li Guanglei * runtime/lket/b2a/lket_b2a.c: bugfix of event description data insert. 2006-10-12 Martin Hunt * stack-ppc64.c (__stp_stack_sprint): Declare sp before _sp. 2006-10-12 Martin Hunt * stack.c: Reorganize and split arch-specific functions to separate files. (_stp_kta): Better checking. (_stp_stack_sprint): Better handling of return probes. * stack-i386.c: New file. Uses 2.6.18 DWARF unwinder if available. * stack-x86_64.c: New file. Uses 2.6.18 DWARF unwinder if available. * stack-ppc64.c: New file. * stack-ia64.c: New file. * sym.c (_stp_kallsyms_lookup_name): New function. Like kallsyms_lookup_name() except use our internal lookup table. 2006-10-10 Frank Ch. Eigler * runtime/lket/b2a/lket_b2a.c: Add several missing #ifdef HAS_MYSQL. 2006-10-10 Li Guanglei * runtime/lket/b2a/lket_b2a.c, runtime/lket/b2a/lket_b2a.h: clean up the unused database tables and destory GTree on exit. 2006-10-10 Li Guanglei * runtime/lket/b2a/Makefile.am: add the checking and optional compiling for mysql client library * runtime/lket/b2a/Makefile.in: regenerated * runtime/lket/b2a/lket_b2a.c, runtime/lket/b2a/lket_b2a.h: Adding the support of automatically database creation and dumping lket trace into mysql database 2006-10-09 Josh Stone From David Wilder * time.c (__stp_estimate_cpufreq): Short-circuit on s390. (_stp_gettimeofday_ns): Use a fixed formula on s390 to convert TOD clocks to nanoseconds. 2006-09-27 Martin Hunt * stack.c (_stp_kta): Rewrite. Use the _stap_symbols struct instead of calling into the kernel. * sym.c (_stp_kallsyms_lookup): Move here from runtime.h * runtime.h: Get rid of all the symbol stuff that did not belong here. 2006-09-26 David Smith * README: Changed 'stpd' references to 'staprun'. * README.doc: Ditto. * TODO: Ditto. * io.c: Ditto. * print.c: Ditto. * runtime.h: Ditto. * bench2/bench.rb: Ditto. 2006-09-26 Martin Hunt * time.c (_stp_init_time): Use dynamic percpu allocations instead of evil static allocations. (_stp_kill_time): Free percpu allocations and set _stp_time to NULL so the timers are only deleted once. 2006-09-26 Martin Hunt * io.c (_stp_vlog): Remove ifdef for STP_RELAYFS. Relayfs now behaves the same as procfs. 2006-09-22 Martin Hunt * print.c: Replace STP_PRINT_BUF_LEN with STP_BUFFER_SIZE. * string.c: Ditto. 2006-09-21 Martin Hunt PR 3232 * print.c (_stp_print_init): New. Alloc per-cpu buffers. (_stp_print_cleanup): New. Free per-cpu buffers. (_stp_print_flush): Use per_cpu_ptr(). * string.c (_stp_sprintf): Ditto. (_stp_vsprintf): Ditto. (_stp_string_cat_cstr): Ditto. (_stp_string_cat_char): Ditto. 2006-09-20 Josh Stone PR 3233 * time.c (stp_time_t): Use ns for the base time, and freq is now kHz. (__stp_estimate_cpufreq): Compute kHz instead of MHz. (__stp_time_timer_callback, __stp_init_time): Compute base in ns. (__stp_time_cpufreq_callback): Record kHz instead of MHz. (_stp_init_time): Record kHz, and disable preemption to avoid a race in the cpufreq notifier. (_stp_gettimeofday_ns): Converted from _stp_gettimeofday_us. * lket/b2a/lket_b2a.c (main): Correct arguments to fseek. (dump_data): Work around a spurious compiler warning. 2006-09-19 Li Guanglei * lket/b2a/lket_b2a.c, lket/b2a/lket_b2a.h: Be sync with the recent runtime printing changes made by Martin. Some clean up work before adding the support of dumping data into MySQL Bug fix of segment fault when an event is not registered. 2006-09-18 Josh Stone PR 3220 From Eugeniy Meshcheryakov : * lket/b2a/lket_b2a.c: Check that appNameTree exists before destroying. 2006-09-18 Martin Hunt * bench2/bench.rb: Remove the deprecated "-m" option to stpd. Also, don't use merge mode for relayfs. * bench2/run_binary_print: New test. Compare various ways of printing binary data. 2006-09-18 Martin Hunt * print.c (_stp_print_flush): Rewrite so one version works for relayfs or procfs. Use proper per-cpu functions. (_stp_reserve_bytes): New function. Reserve bytes in the output buffer. (_stp_print_binary): New function. Write a variable number of 64-bit values directly into the output buffer. * string.c (_stp_sprintf): Rewrite using new per-cpu buffers. (_stp_vsprintf): Ditto. (_stp_string_cat_cstr): Ditto. (_stp_string_cat_char): Ditto. * runtime.h: Set defaults for MAXTRYLOCK and TRYLOCKDELAY to make runtime tests in bench2 happy. 2006-08-29 Li Guanglei From Gui Jian * lket/b2a/lket_b2a.c, lket/b2a/lket_b2a.h: add the support to get_cycles() and sched_clock() timing mechanism for LKET. 2006-08-14 Will Cohen PR 3037 * string.c: * print.c: Remove includes for . 2006-08-11 David Smith * lket/b2a/.cvsignore: Added file to let cvs ignore generated files. 2006-07-21 Martin Hunt * runtime.h: Include compat.h. 2006-07-20 Martin Hunt * vsprintf.c (_stp_vsnprintf): %p format fixes. 2006-07-14 Josh Stone PR 2922 * time.c (_stp_init_time): call cpufreq_get for each cpu from a non-atomic context (module init time). * time.c (__stp_init_time): remove call to cpufreq_get from IPI. * time.c (__stp_time_timer_callback): disable IRQ's to avoid perturbations in measurements. * time.c (_stp_gettimeofday_us): disable preemption to avoid CPU swaps while we're computing the time. 2006-07-12 Martin Hunt * runtime.h (for_each_cpu): Define for new kernels which no longer define it. 2006-07-11 Martin Hunt * string.c (_stp_text_str): Use __get_user(). 2006-07-11 Martin Hunt * string.c (_stp_text_str): Add a parameter to support userspace strings too. * string.h: (_stp_text_str): Fix proto. 2006-07-11 Li Guanglei * lket/b2a/lket_b2a.c: modified to be sync with the new addevent.process event hooks 2006-06-29 Li Guanglei * lket/b2a/lket_b2a.c, lket/b2a/lket_b2a.h: modified to be sync with new _lket_trace() 2006-06-27 Roland McGrath * loc2c-runtime.h: Add some comments. 2006-06-23 Josh Stone * time.c: Do cpufreq notification only if CONFIG_CPU_FREQ defined. 2006-06-21 Josh Stone PR 2525 * time.c: Time-estimation with minimal dependency on xtime. 2006-06-16 Roland McGrath * lket/b2a/Makefile.in: Regenerated with automake-1.9.6-2. 2006-06-09 Li Guanglei * lket/b2a/lket_b2a.c, lket/b2a/lket_b2a.h: Rewrite according to the latest LKET's tapsets. Make it able to read the metainfo wrote by tapsets. 2006-06-02 Li Guanglei * lket/b2a/lket_b2a.c: eliminate some compile warnings 2006-06-01 Li Guanglei * lket/b2a/lket_b2a.h, lket/b2a/lket_b2a.c: make it able to read user added trace data and backtrace 2006-05-30 Martin Hunt * string.c (_stp_text_str): New function. * string.h (_stp_text_str): Declare. 2006-05-25 Martin Hunt * vsprintf.c (_stp_vsnprintf): Change %p to work like libc and automatically insert "0x" before the pointer. 2006-05-24 Josh Stone PR 2677 * sym.c (_stp_symbol_sprint_basic): New function that returns just the symbol name, and doesn't bother with String. 2006-05-24 Li Guanglei * lket/b2a/Makefile.am, lket/b2a/Makefile.in, lket/b2a/README, lket/b2a/lket_b2a.c, lket/b2a/lket_b2a.h: a binary to ascii converter used to convert LKET's default binary trace data. 2006-05-09 Li Guanglei PR 2647 Patch given by Gui Jian * vsprintf.c: %0s support to print null-terminated string 2006-05-03 Josh Stone * loc2c-runtime.h (deref_string): resolved gcc "warning: assignment makes integer from pointer without a cast" when using a pointer as the source address. 2006-04-28 Martin Hunt * vsprintf.c (_stp_vsnprintf): Fix argument size for %p. 2006-04-17 Martin Hunt * vsprintf.c (_stp_vsnprintf): Fix endian before writing binary. (_stp_endian): New variable to control endianess. 2006-04-11 Tom Zanussi * print.c (_stp_print_flush): Change TIMESTAMP_SIZE to STP_TIMESTAMP_SIZE to avoid conflicts with Suse kernels. 2006-04-10 Martin Hunt * string.c (_stp_string_cat_cstr): No need to copy terminating 0. * vsprintf.c (_stp_snprintf): New function. * stat-common.c (_stp_stat_print_histogram): Write a newline at the end of the histogram. 2006-04-09 Martin Hunt * print.c (_stp_print_flush): Send 'len" bytes instead of 'len+1', which included terminating 0. * string.c (_stp_sprintf): Call _stp_vsnprintf() instead of vsnprintf(). (_stp_vsprintf): Ditto. * vsprintf.c: New file. 2006-04-05 Will Cohen * string.h (__stp_stdout): Correct initialization. 2006-03-30 Martin Hunt * string.c (_stp_string_cat_cstr): Use memcpy() instead of strncpy(). 2006-03-26 Martin Hunt * bench2/bench.rb (Bench::run): Instead of loading the module once and running against different numbers of threads, load and unload the module each time. Then keep track of failures per thread. Also use the new itest to keep the tests the same size regardless of the number of threads. (Bench::initialize): Make itest if needed. (Bench::load, Stapbench::load): Increase buffer size to 8MB. * bench2/itest.c: Change arg to be the number of threads instead of the number of millions of calls to make. This makes it easy to divide the work among multiple threads without making the test run many times longer. 2006-03-09 Martin Hunt * bench2: New directory containing a benchmark framework. 2006-02-10 Martin Hunt * copy.c (_stp_copy_from_user): Revert previous incorrect change. 2006-02-09 Martin Hunt * copy.c (_stp_copy_from_user): If access fails, return -1. 2006-01-25 Martin Hunt * stat.c (_stp_stat_init): Use _stp_alloc_percpu(). (_stp_stat_del): New function. * alloc.c (_stp_alloc_percpu): New function. (_stp_free_percpu): New function. 2006-01-19 Martin Hunt * pmap-gen.c (_stp_pmap_get): Fix bug where old data from agg map could be returned after element was deleted. 2006-01-16 Josh Stone * stat.c (_stp_stat_clear): add a function that just clears a Stat, so we can use delete in the translator. 2006-01-16 Martin Hunt * map.c (_stp_pmap_agg): Return NULL when aggregation fails. 2006-01-15 Frank Ch. Eigler * io.c (_stp_exit): Revert. 2006-01-10 Martin Hunt * io.c (_stp_exit): set STAP_SESSION_STOPPING. 2006-01-03 Frank Ch. Eigler * io.c (_stp_softerror): New function. 2005-12-14 Martin Hunt * pmap-gen.c (_stp_pmap_new_*): Initialize lock. (_stp_pmap_set_*): Lock map while in use. (_stp_pmap_add_*): Lock map while in use. (_stp_pmap_get_cpu): Ditto. (_stp_pmap_get): Lock each per-cpu map. * map-gen.c: Define and use NULLRET for a NULL return value. * map.c (_stp_pmap_clear): New function. (_stp_pmap_agg): Lock each per-cpu map as it gets aggregated. 2005-12-13 Martin Hunt * map.c (_stp_map_sortn): Set a limit of 30 for n. Automatically call _stp_map_sort() if more is requested. 2005-12-08 Martin Hunt * map.c (_new_map_create): Only increment map size if a node was moved off the free list. (_stp_map_size): New function. (_stp_pmap_size): New function. 2005-12-07 Martin Hunt PR1923 * map.h (struct map_root): Remove membuf. (struct pmap): Define. (PMAP): Declare. * map.c (_stp_map_init): Use kmalloc() to allocate individual nodes instead of using vmalloc() to allocate one big chunk. (_stp_map_new): Use kmalloc. (_stp_pmap_new): Use kmalloc. Return a PMAP. (__stp_map_del): New function. Free all the nodes in a map. (_stp_map_del): Call __stp_map_del() then free map struct. (_stp_pmap_del): Takes a PMAP. Calls __stp_map_del() for each cpu. (_stp_pmap_printn_cpu): Change arg to PMAP. (_stp_pmap_agg): Change arg to PMAP. (_stp_pmap_get_agg): Change arg to PMAP. * map-stat.c (_stp_pmap_new_hstat_linear): Use PMAP instead of MAP. Fix allocations. (_stp_pmap_new_hstat_log): Ditto. * pmap-gen.c Fix all functions to take or return PMAPS instead of MAPS. * alloc.c: Remove everything except kmalloc_node(). All runtime code now uses kmalloc() directly. 2005-11-30 Martin Hunt * io.c (_stp_exit): To prevent any possible interactions with the probed function, just set a flag here. 2005-11-28 Graydon Hoare * stat-common.c (_stp_stat_print_histogram): Various formatting corrections and aesthetic tweaks. (__stp_stat_add): Correction to linear bucket underflow cases. 2005-11-28 Martin Hunt * alloc.c (__stp_valloc_percpu): Use same code for up and smp. (_stp_per_cpu_ptr): New macro. * user/alloc.c: Ditto. * map.c: Use _stp_map_cpu_ptr(). * map-stat.c: Ditto. * pmap-gen.c: Ditto. * runtime.h: Include alloc.c * user/runtime.h: Ditto. * map.c (_stp_pmap_del): Use _stp_free_percpu() to free pmaps. * map-stat.c (_stp_pmap_new_hstat_log): Fix typo. Call _stp_pmap_new() instead of _stp_map_new(). 2005-11-11 Martin Hunt * map.h: Removed old API macros and prototypes. 2005-11-10 Martin Hunt * pmap-gen.c (_stp_pmap_get()): New function. Aggregates the per-cpu map nodes into an aggregation map node. * map.c (_stp_new_agg): Return a struct map_node *. (_stp_add_agg): If count is 0 when adding, just set the stats. 2005-11-10 Martin Hunt * map.c: Doc updates. (_stp_new_agg): * pmap-gen.c: Change a bunch of generated function names to avoid conflicts with maps with the same key and value types. 2005-11-10 Martin Hunt * map.c (_stp_cmp): Use _stp_div64(). 2005-11-09 Martin Hunt * map.h: Remove HSTAT_LOG and HSTAT_LINEAR. * map-gen.c: Fix comment. * pmap-gen.c: Ditto. 2005-11-09 Martin Hunt * map.c (_stp_cmp): Patch to sort on stats. (_stp_map_sort): Ditto. (_stp_map_sortn): Ditto. 2005-11-09 Martin Hunt * map.c: Change order of includes. 2005-11-09 Martin Hunt * map.h (struct map_root): Delete fields used by old API. * map.c: Remove old map API functions. * map-stat.c (_stp_map_add_stat): Delete. (_stp_pmap_new_hstat_linear): Move here from map.c. (_stp_pmap_new_hstat_log): Ditto. * list.c: Deleted. * map-keys.c: Deleted. * map-values.c: Deleted. * map-int.c: Deleted. 2005-11-08 Martin Hunt * alloc.c (__stp_valloc_percpu): Fix call to vmalloc_node. (vmalloc_node): Remove nonworking code. 2005-11-08 Martin Hunt * map.c (_stp_map_init): New function. Extracted from _stp_map_new() so it can be used in _stp_pmap_new(). (_stp_map_new): Call _stp_map_init(). (_stp_pmap_new): New function. (_stp_pmap_new_hstat_linear): New function. (_stp_pmap_new_hstat_log): New function. (_stp_pmap_del): New function. (_stp_pmap_printn_cpu): New function. (_stp_pmap_printn): New function. (_stp_new_agg): New function. (_stp_add_agg): New function. (_stp_pmap_agg): New function. (_new_map_clear_node): New function. * map.h (struct map_root): Add Hist struct. Add copy and cmp function pointers for pmaps. * stat.h: Remove Stat struct. Replace with Hist struct that is limited to only histogram params. * map-stat.c: Fix up references to histogram params in map_root. * stat-common.c: Ditto. * stat.c: Ditto. * pmap-gen.c: New file. Implements per-cpu maps. * map-gen.c: Minor bug fixes. Use new VAL_IS_ZERO() macro. * alloc.c (vmalloc_node): For NUMA, provide a vmalloc that does node-local allocations. (_stp_alloc_cpu): A version of _stp_alloc() that does node-local allocations. (_stp_valloc): A version of _stp_valloc() that does node-local allocations. (__stp_valloc_percpu): New function. Like alloc_percpu() except uses _stp_valloc(). (_stp_vfree_percpu): New function. Like free_percpu(). 2005-11-04 Martin Hunt * runtime.h: #include . (init_module): Remove old ppc comment. ifdef _stp_kta so it only gets set for x86 and x86_64. 2005-10-31 Martin Hunt * ALL: Cleanup copyrights. 2005-10-28 Martin Hunt * map-gen.c (MAP_GET_VAL): Use the _stp_get_*() functions. (_stp_map_set_*): When setting to "", don't create node if key not found. (_stp_map_get_*): Use new MAP_GET_VAL. Return "" when string lookups not found. * map.c (_stp_get_int64): Check args and return 0 on bad args or wrong type. (_stp_get_stat): Ditto. (_stp_key_get_int64): Ditto. (_stp_get_str): Check args and return "bad type" on bad args or wrong type. (_stp_key_get_str): Ditto. (_new_map_set_str): If setting to "", delete node. (_new_map_get_*): Delete. Use _stp_get_*(). 2005-10-26 Martin Hunt * map-gen.c (KEY4CPY): Fix typo. (KEYCPY): Add missing semicolon. 2005-10-26 Martin Hunt * map-gen.c: New file. * map.c (_new_map_create, _new_map_del_node, _new_map_del_node, _new_map_set_int64, _new_map_set_str,_new_map_get_int64, _new_map_get_str, _new_map_get_stat, _new_map_set_stat): New internal functions for the new API. * map-int.c (__stp_map_set_int64): Modify to return an error code. * map-stat.c (_stp_map_add_stat): Ditto. * map-str (_stp_map_set_str): Ditto. * Doxyfile: Remove predefines NEED_STRING_VALS, NEED_STATS, NEED_INT64. * map-keys.c: Ditto. * list.c (_stp_list_new): Ditto. Also set map->list. * map-values.c: Ditto. 2005-10-19 Martin Hunt * runtime.h (_stp_kallsyms_lookup_tabled): Only compile this for systemtap. Runtime-only examples don't need it. 2005-10-19 Tom Zanussi * print.c (_stp_print_flush): Switch to binary TIMESTAMP. 2005-10-14 Tom Zanussi PR 1455 * string.c (_stp_sprintf): Restore overwritten NULL byte. * print.c: Change STP_PRINT_BUF_LEN to correct size. 2005-10-06 Frank Ch. Eigler PR 1332. * sym.h: New file to declare explicit symbol table struct. * runtime.h (_stp_kallsyms_lookup_tabled): Use it if available. * sym.c (_stp_symbol_sprint): HAS_LOOKUP mooted. 2005-09-30 Graydon Hoare * loc2c-runtime.h (_put_user_asm): Fix bracket-matching. 2005-09-23 Martin Hunt * map.c (_stp_map_sortn): Call _stp_map_sort() when n is 0. 2005-09-23 Martin Hunt * map.c (_stp_cmp): New comparison function for sorts. (_stp_swap): New swap function for bubble sort. (_stp_map_sortn): New function. (_stp_map_sort): New function. (_stp_map_printn): New function. (_stp_map_print): Convert to a macro. 2005-09-22 Martin Hunt * regs.h: PPC64 version from Ananth N Mavinakayanahalli * runtime.h (init_module): Only initialize _stp_kta and _stp_kallsyms_lookup on i386 and x86_64. Define HAS_LOOKUP. * sym.c (_stp_symbol_sprint): If HAS_LOOKUP is not defined, just print address in hex. * current.c (_stp_ret_addr): Add ppc64 version. (_stp_sprint_regs): PPC64 version from Ananth N Mavinakayanahalli 2005-09-14 Martin Hunt * map.c (_stp_map_clear): New function. CLears a map but does not free it. * copy.c (__stp_strncpy_from_user): Add ppc64 support. (_stp_strncpy_from_user): Call access_ok(). (_stp_string_from_user): Ditto. (_stp_copy_from_user): Ditto. 2005-09-12 Martin Hunt * io.c (ERR_STRING): Remove ansi codes. (WARN_STRING): Ditto. 2005-09-12 Martin Hunt * arith.c (_stp_div64): Check for division by 0 or -1 first. This simplifies things and removes the possibility of x86_64 trying LLONG_MIN/-1 and faulting. (_stp_mod64): Ditto. 2005-09-10 Frank Ch. Eigler * arith.c: Add some comments explaining why the last change works. 2005-09-09 Roland McGrath * loc2c-runtime.h [__powerpc__] (store_register): Add #undef. 2005-09-09 Martin Hunt * stat-common.c (_stp_stat_print_valtype): Use _stp_div64(). * arith.c (_stp_div64): Check error before writing to it. Remove check against 32-bit LONG_MIN and -1. That only applies to 64-bit. (_stp_mod64): Ditto. 2005-09-08 Martin Hunt * arith.c (_stp_div64): Check for overflow. (_stp_mod64): Ditto. 2005-09-08 Martin Hunt * arith.c (_stp_div64): For 64-bit cpus, just use native division. Otherwise call _div64(). (_stp_mod64): Call _mod64() isf necessary. (_div64): 64-bit division for 32-bit cpus. (_mod64): 64-bit modulo for 32-bit cpus. * map-values.c (_stp_map_entry_exists): Remove unused var. 2005-09-01 Martin Hunt * stack.c (_stp_stack_sprint): Add a verbose arg to pass along to underlying funcs. 2005-08-31 Martin Hunt * runtime.h (init_module): Include full prototype info in function cast to satisfy stap. * sym.c (_stp_kallsyms_lookup): Moved to runtime.h. * stack.c (_stp_kta): Moved to runtime.h. * runtime.h (init_module): Initialize _stp_kallsyms_lookup and _stp_kta. * probes.c (_stp_lookup_name): Replaced by kallsyms_lookup_name(). * list.c (_stp_copy_argv_from_user): ifdef this function NEED_STRING_VALS. 2005-08-30 Roland McGrath * loc2c-runtime.h (fetch_register, store_register): Rewritten to pass REGS to dwarf_register_ as a macro argument. [__i386__, __x86_64__]: Update dwarf_register_* macros. [__i386__] (dwarf_register_4): Define special case for stack pointer. 2005-08-29 Martin Hunt * list.c (_stp_copy_argv_from_user): Move to here. * copy.c (_stp_copy_argv_from_user): Delete. * runtime.h: Always include copy.h. 2005-08-25 Roland McGrath * loc2c-runtime.h (deref_string): Rewritten using deref. 2005-08-24 Roland McGrath * loc2c-runtime.h (deref_string): New macro. 2005-08-24 Martin Hunt * io.c (_stp_vlog): Send warnings and errors to STP_OOB_DATA. 2005-08-23 Martin Hunt * runtime.h: Add a prototype for _stp_dbug(). 2005-08-22 Martin Hunt * runtime.h (kbug): New dbug macros that calls printk. 2005-08-21 Frank Ch. Eigler * arith.c (*): Adapt to last_error context variable. 2005-08-19 Frank Ch. Eigler * arith.c (_stp_random_pm): New function. 2005-08-19 Martin Hunt * print.c: Change ifdefs to STP_RELAYFS. * runtime.h: Ditto. * io.c (_stp_vlog): Call _stp_write instead of _stp_ctrl_send. * Makefile: Don't build stp-control. * README.doc: Update. * TODO: Update. 2005-08-12 Graydon Hoare * map-values.c (_stp_map_entry_exists): New function. * map.h (_stp_map_entry_exists): Declare it. 2005-08-12 Frank Ch. Eigler * arith.c: New file to contain arithmetic helper functions. * builtin_functions.h: Remove, unused. * runtime.h: Include it. 2005-08-10 Roland McGrath * loc2c-runtime.h (store_bitfield): Fix argument use. (store_deref): New macro (three flavors). 2005-08-03 Martin Hunt * io.c (_stp_vlog): Revert previous change for now. * print.c (_stp_print_flush): Ditto. 2005-08-03 Tom Zanussi * io.c (_stp_vlog): Remove call to _stp_print_flush(). * print.c (_stp_print_flush): _stp_warn() on first transport failure. 2005-08-01 Martin Hunt * io.c (_stp_vlog): Use _stp_pid instead os _stp_tport->pid. * print.c (_stp_print_flush): Don't need _stp_tport. *runtime.h (probe_start): Just call _stp_transport_init(). (probe_exit): Just call _stp_transport_close(). 2005-07-28 Graydon Hoare * loc2c-runtime.h: New file from elfutils CVS. 2005-07-20 Martin Hunt * io.c (_stp_vlog): Don't count transport failures for these messages. 2005-07-19 Martin Hunt * print.c (_stp_print_flush): Check return value and increment transport failures. 2005-07-14 Frank Ch. Eigler * builtin_functions.h (printk): Use explicit format string. 2005-07-11 Graydon Hoare * builtin_functions.h: New file. 2005-07-10 Martin Hunt * runtime.h (init_module): Fix return value. 2005-07-08 Martin Hunt * runtime.h: Move some common pieces of modules into this file. Includes MODULE_LICENSE, cleanup_module and init_module. * print.c (_stp_print_flush): Rename "t" to "_stp_tport". * io.c (_stp_vlog): Ditto. 2005-07-01 Martin Hunt * string.c (_stp_string_init): CAll stp_error() on bad init. * list.c (_stp_list_clear): Call _stp_warn(). * probes.c: Convert all _stp_log() calls to either stp_warn() or dbug(). * print.c: Comment out dbug()s. * stat-common.c: Comment out dbug()s. * map.c (_stp_map_new): Call _stp_error() on a bad map type. Comment out dbug()s. * map-stat.c (_stp_map_new_hstat_log): Call _stp_warn(). (_stp_map_new_hstat_linear): Ditto. * map-int.c: Comment out dbug()s. * map-str.c: Comment out dbug()s. * map-keys.c: Use _stp_warn(). Comment out dbug()s. * alloc.c (_stp_alloc): Call _stp_error(). (_stp_valloc): Ditto. * io.c (_stp_warn): New function. (_stp_exit): New function. (_stp_error): New function. (_stp_dbug): New function. * runtime.h (dbug): Call _stp_dbug() if DEBUG is defined. 2005-06-29 Martin Hunt * map-values.c (_stp_map_add_int64): Fix docs. * map-str.c: Fix some docs * map.c: Ditto. * map.doc: Ditto. * current.c (_stp_ret_addr_r): New function. (_stp_probe_addr): New function. (_stp_probe_addr_r): New function. 2005-06-27 Martin Hunt * Doxyfile (PREDEFINED): Added USE_RET_PROBES. * probes.c (_stp_register_kretprobes): New function. (_stp_unregister_kretprobes): New function. 2005-06-20 Tom Zanussi * print.c: Made relayfs _stp_print_flush() use sequence counter. * runtime.h: Added sequence counter, moved subbuf_size etc to probes. 2005-06-18 Martin Hunt * counter.c: New file. Counter aggregations. * stat.c: New file. Stat aggregations. * stat.h: Header file for stats. * map-int.c: New file. Support for int64 values. * map-stat.c: New file. Support for stat values. * map-str.c: New file. Support for string values. * map-values.c: Now just includes the necessary map-*.c files. * stat-common.c: New file. Stats stuff common to Stats and maps containing stats. * Doxyfile: Bumped version to 0.6. * README: Renamed README.doc and reorganized. 2005-06-15 Martin Hunt * current.c (_stp_ret_addr): Fix computation for i386. 2005-06-14 Martin Hunt * README: Removed old docs and replaced with simple build instructions. * Makefile: New file. * probes/build: New file. 2005-06-13 Martin Hunt * print.c (next_fmt): Move this func to print.c. 2005-06-02 Martin Hunt * string.c (_stp_string_cat_cstr): Be sure result is always terminated. * print.c (_stp_vprintf): Fix typo. 2005-05-31 Martin Hunt * map.c (_stp_map_print): Now takes a format string instead of a name. * map.h (foreach): Update macro. * string.c (_stp_string_cat_char): New function. Append a char to a string. * map-keys.c: Don't forget to undef KEYSYM, ALLKEYS and ALLKEYSD. 2005-05-26 Martin Hunt * current.c (_stp_sprint_regs): Implement for i386. * sym.c (_stp_symbol_sprint): Check name before trying to print it. (_stp_symbol_print): Change to macro that calls _stp_symbol_sprint(). 2005-05-18 Martin Hunt * print.c: All functions except _stp_print_flush() are now macros which use _stp_stdout. * string.c: Add _stp_stdout support. Data written to _stp_stdout is automatically flushed when the print buffer is full. * runtime.h: Always include string.c. 2005-05-17 Martin Hunt * map.c (needed_space): Use do_div(). (_stp_map_print_histogram): Ditto. (_stp_map_print): Ditto. * map-values.c (_stp_map_add_int64_stat): Use do_div() when computing histogram bucket. * map-keys.c (_stp_map_key): Fix some warnings on 32-bit machines by using key_data casts. 2005-03-30 Martin Hunt * scbuf.c: Make functions use per-cpu buffers as documented. _stp_scbuf_clear(): Now returns a pointer to the buffer.