David Smith [Mon, 23 Jun 2008 19:42:03 +0000 (14:42 -0500)]
Made RHEL5 changes.
2008-06-23 David Smith <dsmith@redhat.com>
* 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.
David Smith [Mon, 23 Jun 2008 17:41:45 +0000 (12:41 -0500)]
Major update to memory map change notification code.
2008-06-23 David Smith <dsmith@redhat.com>
* tapsets.cxx (utrace_derived_probe_group::emit_probe_decl):
Handles UDPF_NONE value.
(utrace_derived_probe_group::emit_vm_callback_probe_decl): New
function.
(utrace_derived_probe_group::emit_module_decls): Calls
emit_vm_callback_probe_decl() to set up vm_callbacks.
2008-06-23 David Smith <dsmith@redhat.com>
* 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.
Josh Stone [Thu, 19 Jun 2008 00:07:15 +0000 (17:07 -0700)]
New optimization to break up statements in void contexts.
PR 6644
* elaborate.cxx (dead_stmtexpr_remover::visit_block): Flatten nested
block statements into a single block.
(dead_stmtexpr_remover::visit_if_statement): Remove the possibility
of if_statements with a null thenblock. When an if lacks both then
and else, either remove it completely or reduce it to a simple
statment evaluating the condition. With an else and no then, invert
the condition and else becomes then.
(void_statement_reducer): New optimization visitor that breaks
statements in void context into smaller pieces, to expose more
optimization opportunities.
(semantic_pass_opt5, semantic_pass_opt6): Bump opt5 to opt6, and
create a new opt5 that runs through void_statement_reducer.
David Smith [Tue, 17 Jun 2008 14:19:24 +0000 (09:19 -0500)]
Got smarter on which utrace events to set on a newly found thread.
2008-06-17 David Smith <dsmith@redhat.com>
* 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.
Josh Stone [Fri, 13 Jun 2008 21:06:18 +0000 (14:06 -0700)]
Minimize last_error checking.
The old behavior was to check last_error all over the place, and if set,
jump to the out-label. Now it's changed to just jump to the out-label
directly after setting last_error.
David Smith [Wed, 11 Jun 2008 16:16:07 +0000 (11:16 -0500)]
utrace thread.begin and thread.end probe test fixes.
2008-06-11 David Smith <dsmith@redhat.com>
* systemtap.base/utrace_p5.exp: Made changes to work when not
configured in the src directory.
* systemtap.base/utrace_p5_multi.c: Made changes to work on x86_64
systems.
David Smith [Wed, 11 Jun 2008 15:37:32 +0000 (10:37 -0500)]
Added .thread.begin and .thread.end utrace probe tests.
2008-06-11 David Smith <dsmith@redhat.com>
* systemtap.base/utrace_p5.exp: Added 'process().thread.begin' and
'process().thread.end' tests.
* systemtap.base/utrace_p5_multi.c: Added multi-threaded test
program for utrace_p5.exp.
* .gitignore: Updated.
David Smith [Mon, 9 Jun 2008 18:10:14 +0000 (13:10 -0500)]
Made 2.6.25 kernel updates.
2008-06-09 David Smith <dsmith@redhat.com>
* tapsets.cxx (utrace_derived_probe::join_group): Removed
generated inclusion of tracehook.h.
(utrace_var_expanding_copy_visitor::visit_target_symbol): Uses
'_stp_arg(0)' to get value of '$syscall'.
David Smith [Fri, 6 Jun 2008 13:43:59 +0000 (08:43 -0500)]
Changed/renamed utrace probes.
2008-06-06 David Smith <dsmith@redhat.com>
* tapsets.cxx (enum utrace_derived_probe_flags): Redefined in
terms of probe types instead of utrace events.
(utrace_var_expanding_copy_visitor::visit_target_symbol): Uses new
utrace_derived_probes_flags values.
(utrace_builder::build): Handles new probe types and new
utrace_derived_probes_flags values.
(utrace_derived_probe_group::emit_probe_decl): Updated to handle
new utrace_derived_probe_flags values.
(utrace_derived_probe_group::emit_module_decls): Ditto. Also
correctly handles 'begin' events correctly by installing a quiesce
handler (instead of running the probe directly).
(register_standard_tapsets): Registers updated utrace probe
types.
2008-06-06 David Smith <dsmith@redhat.com>
* 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-06-06 David Smith <dsmith@redhat.com>
* systemtap.base/utrace_p4.exp: Updated for utrace probe changes.
* systemtap.base/utrace_p5.exp: Ditto.
Srinivasa DS <srinivasa@in.ibm.com> -fpie option puts limit on GOT size and hence systemtap build fails on s390. So use -fPIE which doesn't put limit on GOT size.