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.