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.