| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* runtime/uprobes2/uprobes.c (uprobe_get_pc_task): new function
(lookup_uretprobe): new helper function
(uprobe_get_pc): use it
* runtime/uprobes2/uprobes.h (uprobe_get_pc_task): declare
* runtime/uprobes/uprobes.c : ditto
* runtime/uprobes/uprobes.h : ditto
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements proper unwinding from uprobes in the presence of
uretprobe trampolines.
* runtime/stack.c (_stp_stack_print): Rework for uprobe context case
and refactor a bit.
* runtime/uprobes2/uprobes.h (GET_PC_URETPROBE_NONE): new constant
* runtime/uprobes2/uprobes.c (uprobe_get_pc): Support translating the
trampoline function from uprobe context in addition to uretprobe
context.
* runtime/uprobes/uprobes.h (GET_PC_URETPROBE_NONE): ditto
* runtime/uprobes/uprobes.c (uprobe_get_pc): ditto
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls):
Initialize ri in context to GET_PC_URETPROBE_NONE in generated
enter_uprobe_probe.
* testsuite/systemtap.context/fib.stp: Add an option to do a backtrace
on function entry.
* testsuite/systemtap.context/fib.exp: Test backtrace in function
entry (uprobe) probes.
|
|
|
|
| |
* runtime/uprobes/uprobes.c (uprobe_get_pc): new function
|
|
|
|
| |
* runtime/uprobes/uprobes_ppc.c (calc_offset): Fix printk types.
|
|
|
|
|
|
|
| |
The code *looks* generic enough, so I think it can be used for ppc32
without modifications.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
|
|
|
|
|
|
|
|
|
| |
group owner of the uprobes buld directory to build uprobes.ko.
- When building uprobes.ko, make all generated files writable by the group
owner of the uprobes build directory.
- Don't change the group owner of the uprobes build directory during
'make install'
|
|
|
|
|
| |
Ensure uprobes install directory has group 'stap-server'.
Rename igid_in to in_group.
|
| |
|
|
|
|
| |
individually.
|
| |
|
| |
|
|
|
|
| |
Delete ownership & permissions tests from modsign.cxx and stap-serverd.
|
|
|
|
| |
Create home directory manually for stap-server.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uprobe_fork_uproc() runs with parent_uproc->rwsem locked.
However uprobe_mk_process() that gets called within uprobe_fork_uproc()
also locks child_uproc->rwsem after initializing it.
Lockdep report confuses this to acquiring a lock that already has been
acquired and suggests using sub-classes.
The alternatives we have are:
1. use classes level to distinguish different uproc structures.
2. unlock parent_uproc->rwsem before we call uprobe_fork_uproc().
3. dont try locking child_uproc->rwsem; since we are protected by
uproc_mutex as well as parent_uproc->rwsem;
We use the last approach.
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
---
|
| |
|
|
|
|
|
| |
Resynch uprobes1 2-byte-opcode table with uprobes2 x86. Mostly changes a
bunch of mmx instructions from rejected to accepted.
|
|
|
|
| |
to make sdt.exp pass
|
|
|
|
|
| |
arch_predict_sp_at_ret() for x86_32 now accommodates ret $4.
Added bz10078 regression test.
|
|
|
|
|
| |
For uprobes 1 and 2, add unmap_u[ret]probe() and define UPROBES_API_VERSION=2.
Adapt tapsets.cxx accordingly.
|
|\ |
|
| | |
|
|/
|
|
|
|
| |
pseudo-instructions like fclex, finit, fstsw, and fstcw.
Do reject opcode 0x82 in 64-bit mode.
|
| |
|
|
|
|
|
|
|
|
| |
2008-11-04 David Smith <dsmith@redhat.com>
From Jim Keniston, PR 5274.
* uprobes/uprobes_s390.h: Add s390 arch support for uprobes
longjump handling.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Fix handling of fork with uretprobe_instances outstanding.
Add regression test.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* runtime/uprobes/uprobes.c: Intercept handler-destined
signals received while we're single-stepping, and re-queue
them afterward.
* runtime/uprobes/uprobes.h: Ditto
|
|
|
|
|
|
|
| |
calls to access_process_vm() when populating instructions
slots. Fixes an SMP bug on multithreaded apps with many
active probepoints.
* runtime/uprobes/uprobes.h: Ditto
|
|
|
|
| |
rcu_dereferences of engine->data to resync with kernel.org builds.
|
|
|
|
| |
access_process_vm(), for kernels that don't export it.
|
|
|
|
|
| |
jmps and calls that use rip-relative addressing. Allow probing
of opcode 0x63.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx: Restored pre-10-08 version: moved uprobes build to
buildrun.cxx.
* buildrun.cxx: Reworked uprobes build so that the resulting
Module.symvers can be used in building the stap-generated
module. If user isn't root, call verify_uprobes_uptodate()
rather than trying (and failing) to rebuild uprobes.ko.
* buildrun.h: uprobes_enabled() and make_uprobes() are no
longer extern.
* runtime/uprobes/Makefile: Added uprobes.ko target for use
by verify_uprobes_uptodate().
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
uprobes_ppc64.h, uprobes_s390.h: Adjusted SLOT_IP and
arch_validate_probed_insn to accept task pointer (needed by
x86_64); added uprobe_probept_arch_info and uprobe_task_arch_info
(ditto).
* runtime/uprobes/uprobes_i386.c: Fixed a couple of glitches
discovered when porting to x86_64
|
|
|
|
| |
* runtime/uprobes/uprobes_s390.[ch]: Added
|
|
|
|
|
|
|
| |
* runtime/uprobes/uprobes.c: Adjust module ref-count
when creating or removing uprobe_process, so "rmmod
--wait uprobes" waits as needed until uretprobed
functions return.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx: Add pass 4.5: make uprobes.ko in runtime/uprobes
* buildrun.cxx: Add uprobes_enabled() and make_uprobes().
Factor run_make_cmd() out of compile_pass().
* buildrun.h: Add uprobes_enabled and make_uprobes decls.
* tapsets.cxx: Do correct #include for modprobed uprobes.ko;
set need_uprobes in pass 2.
* session.h: Add need_uprobes
* runtime/staprun/common.c: Add -u option -> need_uprobes
* runtime/staprun/staprun_funcs.c: Generalize insert_module()
to support inserting uprobes.ko.
* runtime/staprun/staprun.c: Add enable_uprobes(). insert_module
call becomes insert_stap_module().
* runtime/staprun/staprun.h: Reflect insert_module() and
need_uprobes changes
* runtime/uprobes/*.[c,h]: uprobes is built as a module,
rather than included into the source of the stap-generated
module.
* runtime/uprobes/Makefile: Added
|
|
uprobes_i386.c, uprobes_i386.h: i386 code
uprobes_arch.c, uprobes_arch.h: map to architecture-specific files
|