Vyacheslav Cherkashin [Mon, 1 Apr 2013 08:24:38 +0000 (12:24 +0400)]
[REFACTOR] new interface arm_uprobe()
-static void arm_uprobe(struct kprobe *p, struct task_struct *task)
+static void arm_uprobe(struct uprobe *p)
Vyacheslav Cherkashin [Mon, 1 Apr 2013 08:08:32 +0000 (12:08 +0400)]
[REFACTOR] new interface get_uprobe()
-struct kprobe *get_uprobe(kprobe_opcode_t *addr, pid_t tgid)
+struct uprobe *get_uprobe(kprobe_opcode_t *addr, pid_t tgid)
Vyacheslav Cherkashin [Fri, 29 Mar 2013 17:13:18 +0000 (21:13 +0400)]
[REFACTOR] remove 'US_NOT_RP2' flag
Vyacheslav Cherkashin [Fri, 29 Mar 2013 17:01:51 +0000 (21:01 +0400)]
[REFACTOR] new interface dbi_/un/register_uprobe()
old API:
int dbi_register_uprobe(struct kprobe *p, struct task_struct *task, int atomic);
void dbi_unregister_uprobe(struct kprobe *p, struct task_struct *task, int atomic);
new API:
int dbi_register_uprobe(struct uprobe *p, int atomic);
void dbi_unregister_uprobe(struct uprobe *p, int atomic);
Vyacheslav Cherkashin [Fri, 29 Mar 2013 16:41:37 +0000 (20:41 +0400)]
[REFACTOR] new interface dbi_/un/register_uretprobe()
Vyacheslav Cherkashin [Fri, 29 Mar 2013 15:48:41 +0000 (19:48 +0400)]
[REFACTOR] new interface dbi_/un/register_ujprobe()
-int dbi_/un/register_ujprobe(struct task_struct *task, struct jprobe *jp, int atomic);
+int dbi_/un/register_ujprobe(struct ujprobe *jp, int atomic);
as well as create 'struct uprobe' and 'struct ujprobe'
Vyacheslav Cherkashin [Fri, 29 Mar 2013 14:17:54 +0000 (18:17 +0400)]
[REFACTOR] rename files: dbi_kprobes_arm.* --> trampoline_arm.*
Vyacheslav Cherkashin [Fri, 29 Mar 2013 13:04:12 +0000 (17:04 +0400)]
[REFACTOR] move trampoline for thumb in uprobe module
from src/modules/kprobe/arch/asm-arm/dbi_kprobes_thumb.*
to src/modules/uprobe/arch/asm-arm/trampoline_thumb.*
Vyacheslav Cherkashin [Fri, 29 Mar 2013 12:22:11 +0000 (16:22 +0400)]
[REFACTOR] move export function in source file
gen_insn_execbuf() and pc_dep_insn_execbuf():
from src/modules/kprobe/arch/asm-arm/dbi_kprobes_arm.h
to src/modules/kprobe/arch/asm-arm/dbi_kprobes.c
Vyacheslav Cherkashin [Fri, 29 Mar 2013 11:59:39 +0000 (15:59 +0400)]
[REFACTOR] move function prototype in header
Vyacheslav Cherkashin [Fri, 29 Mar 2013 10:59:34 +0000 (14:59 +0400)]
[REFACTOR] rename kretprobe* --> uretprobe*
Vyacheslav Cherkashin [Fri, 29 Mar 2013 07:40:14 +0000 (11:40 +0400)]
[REFACTOR] move trampoline_uprobe_handler()
from src/modules/uprobe/arch/asm-arm/swap_uprobes.c
to src/modules/uprobe/swap_uprobes.c
Vyacheslav Cherkashin [Thu, 28 Mar 2013 13:20:12 +0000 (17:20 +0400)]
[REFACTOR] create uretprobe
Vyacheslav Cherkashin [Thu, 28 Mar 2013 11:38:57 +0000 (15:38 +0400)]
[REFACTOR] create and use recycle_urp_inst()
Vyacheslav Cherkashin [Thu, 28 Mar 2013 11:34:32 +0000 (15:34 +0400)]
[REFACTOR] create and use free_urp_inst()
Vyacheslav Cherkashin [Thu, 28 Mar 2013 11:25:22 +0000 (15:25 +0400)]
[REFACTOR] create and use get_used_urp_inst()
Vyacheslav Cherkashin [Thu, 28 Mar 2013 11:24:09 +0000 (15:24 +0400)]
[REFACTOR] create and use get_free_urp_inst()
Vyacheslav Cherkashin [Thu, 28 Mar 2013 10:02:30 +0000 (14:02 +0400)]
[REFACTOR] create uretprobe_inst_table[]
Vyacheslav Cherkashin [Thu, 28 Mar 2013 09:07:22 +0000 (13:07 +0400)]
[REFACTOR] remove get_user_pages_atomic()
Vyacheslav Cherkashin [Thu, 28 Mar 2013 08:28:03 +0000 (12:28 +0400)]
[REFACTOR] rename and move arch_remove_uprobe()
rename:
arch_remove_uprobe() --> remove_uprobe()
move:
from src/modules/kprobe/arch/dbi_kprobes.c
to src/modules/uprobe/swap_uprobes.c
Vyacheslav Cherkashin [Thu, 28 Mar 2013 07:40:16 +0000 (11:40 +0400)]
[REFACTOR] rename and move arch_disarm_uprobe()
rename:
arch_disarm_uprobe() --> disarm_uprobe()
move:
from src/modules/kprobe/arch/dbi_kprobes.c
to src/modules/uprobe/swap_uprobes.c
Vyacheslav Cherkashin [Wed, 27 Mar 2013 15:02:06 +0000 (19:02 +0400)]
[REFACTOR] create aggregate for uprobes
Vyacheslav Cherkashin [Wed, 27 Mar 2013 12:45:54 +0000 (16:45 +0400)]
[REFACTOR] remove kretprobe_trampoline_holder()
Vyacheslav Cherkashin [Wed, 27 Mar 2013 12:31:20 +0000 (16:31 +0400)]
[REFACTOR] remove arch_disarm_kretprobe()
Vyacheslav Cherkashin [Wed, 27 Mar 2013 12:28:15 +0000 (16:28 +0400)]
[REFACTOR] remove arch_arm_kretprobe()
Vyacheslav Cherkashin [Wed, 27 Mar 2013 11:36:27 +0000 (15:36 +0400)]
[REFACTOR] remove arch_arm_uretprobe()
Vyacheslav Cherkashin [Wed, 27 Mar 2013 11:34:00 +0000 (15:34 +0400)]
[REFACTOR] remove arch_disarm_uretprobe()
Vyacheslav Cherkashin [Wed, 27 Mar 2013 11:30:28 +0000 (15:30 +0400)]
[REFACTOR] remove arch_prepare_uretprobe()
Vyacheslav Cherkashin [Wed, 27 Mar 2013 10:24:11 +0000 (14:24 +0400)]
[REFACTOR] remove unnecessary code
Vyacheslav Cherkashin [Wed, 27 Mar 2013 10:07:15 +0000 (14:07 +0400)]
[REFACTOR] rename and move arch_arm_uprobe()
rename:
arch_arm_uprobe() --> arm_uprobe()
move:
from src/modules/kprobe/arch/dbi_kprobes.c
to src/modules/uprobe/swap_uprobes.c
Vyacheslav Cherkashin [Wed, 27 Mar 2013 09:58:51 +0000 (13:58 +0400)]
[REFACTOR] move dbi_arch_uprobe_return()
from src/modules/kprobe/arch/asm-arm/*
to src/modules/uprobe/arch/asm-arm/*
Vyacheslav Cherkashin [Tue, 26 Mar 2013 09:20:50 +0000 (13:20 +0400)]
[REFACTOR] move arch dependent part
Vyacheslav Cherkashin [Mon, 25 Mar 2013 07:43:55 +0000 (11:43 +0400)]
[FIX] work uretprobe without ujprobe
Vyacheslav Cherkashin [Mon, 25 Mar 2013 07:21:21 +0000 (11:21 +0400)]
[FIX] remove BUG() message when called exception
Vyacheslav Cherkashin [Thu, 21 Mar 2013 11:59:28 +0000 (15:59 +0400)]
[REFACTOR] redesign arch_prepare_uretprobe_hl()
Vyacheslav Cherkashin [Thu, 21 Mar 2013 11:37:12 +0000 (15:37 +0400)]
[REFACTOR] remove current_kprobe from swap_uprobe module
Vyacheslav Cherkashin [Tue, 19 Mar 2013 17:58:20 +0000 (21:58 +0400)]
Merge branch 'dev' into kernel
Conflicts:
src/modules/kprobe/arch/asm-arm/dbi_kprobes.c
and 'Set flag of current mode' in:
src/modules/uprobe/arch/asm-arm/swap_uprobes.c
Vyacheslav Cherkashin [Tue, 19 Mar 2013 17:32:04 +0000 (21:32 +0400)]
[REFACTOR] create trampoline_uprobe_handler()
Dmitry Kovalenko [Tue, 19 Mar 2013 15:59:23 +0000 (19:59 +0400)]
Merge branch 'dev' of ssh://106.109.8.71/srv/git/dbi into dev
Dmitry Kovalenko [Tue, 19 Mar 2013 15:49:27 +0000 (19:49 +0400)]
[FIX] Correct deletion retprobes in thumb mode
New retprobe deletion method introduced by
f8fa40b9 doesn't handle thumb
Dmitry Kovalenko [Tue, 19 Mar 2013 13:50:54 +0000 (17:50 +0400)]
[FIX] Add filter duplicated probes insertion
Vasiliy Ulyanov [Tue, 19 Mar 2013 09:09:32 +0000 (13:09 +0400)]
[FIX] SWAP buffer memory copy optimization
while loop replaced with memcpy
Kudrjavtsev Nickita [Mon, 18 Mar 2013 15:29:02 +0000 (19:29 +0400)]
[FIX] fixing problem from Barinov when __switch_to was't collected
Vyacheslav Cherkashin [Mon, 18 Mar 2013 09:13:20 +0000 (13:13 +0400)]
[REFACTOR] create pre_handler_uretprobe()
Vyacheslav Cherkashin [Mon, 18 Mar 2013 08:01:19 +0000 (12:01 +0400)]
[REFACTOR] create uprobe_table[]
Vyacheslav Cherkashin [Mon, 18 Mar 2013 04:59:22 +0000 (08:59 +0400)]
[REFACTOR] rename (un)register_uprobe()
__register_uprobe() --> dbi_register_uprobe()
unregister_uprobe() --> dbi_unregister_uprobe()
Vyacheslav Cherkashin [Fri, 15 Mar 2013 13:59:14 +0000 (17:59 +0400)]
[REFACTOR] create longjmp_break_uhandler()
Vyacheslav Cherkashin [Fri, 15 Mar 2013 12:59:16 +0000 (16:59 +0400)]
[REFACTOR] kprobe_handler()
Vyacheslav Cherkashin [Wed, 13 Mar 2013 08:21:30 +0000 (12:21 +0400)]
[REFACTOR] decompose setjmp_pre_handler()
on setjmp_pre_handler() and setjmp_upre_handler()
Vyacheslav Cherkashin [Tue, 12 Mar 2013 16:52:17 +0000 (20:52 +0400)]
[REFACTOR] remove not the caller code
Vyacheslav Cherkashin [Tue, 12 Mar 2013 15:20:04 +0000 (19:20 +0400)]
[REFACTOR] move uprobe_insn_slot_table[]
from src/modules/kprobe/dbi_insn_slots.c
to src/modules/uprobe/swap_uprobes.c
Vyacheslav Cherkashin [Tue, 12 Mar 2013 12:29:11 +0000 (16:29 +0400)]
[REFACTOR] create uprobe_handler()
move code from kprobe_handler() to uprobe_handler()
Vyacheslav Cherkashin [Tue, 12 Mar 2013 09:18:21 +0000 (13:18 +0400)]
[REFACTOR] add parameter page_list in get_insn_slot()
Vyacheslav Cherkashin [Tue, 12 Mar 2013 09:00:38 +0000 (13:00 +0400)]
[REFACTOR] decompose arch_remove_kprobe()
on arch_remove_kprobe() and arch_remove_uprobe()
Vyacheslav Cherkashin [Tue, 12 Mar 2013 07:05:21 +0000 (11:05 +0400)]
[REFACTOR] move register undef_hook for US in uprobe module
Vyacheslav Cherkashin [Mon, 11 Mar 2013 12:33:54 +0000 (16:33 +0400)]
[REFACTOR] extract arch specific code from kprobe to uprobe
Artem Dergachev [Mon, 11 Mar 2013 09:10:53 +0000 (13:10 +0400)]
[FIX] Fix a typo leading to a compile error in error_storage.c
Vyacheslav Cherkashin [Thu, 7 Mar 2013 10:27:10 +0000 (14:27 +0400)]
[REFACTOR] move dbi_uprobes from swap_kprobe module to swap_uprobe module
Vyacheslav Cherkashin [Thu, 7 Mar 2013 08:28:38 +0000 (12:28 +0400)]
[REFACTOR] create empty swap_uprobe module
Kudrjavtsev Nickita [Tue, 5 Mar 2013 11:49:12 +0000 (15:49 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Kudrjavtsev Nickita [Tue, 5 Mar 2013 11:46:09 +0000 (15:46 +0400)]
if swap.ini has undefined path to lib or app driver will return this wrong path
Vyacheslav Cherkashin [Mon, 4 Mar 2013 13:13:59 +0000 (17:13 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vyacheslav Cherkashin [Mon, 4 Mar 2013 13:12:09 +0000 (17:12 +0400)]
FIX stack offset in uretprobe disarming
Vasiliy Ulyanov [Mon, 4 Mar 2013 06:12:12 +0000 (10:12 +0400)]
Remove compile errors/warnings for some platforms (buffer module)
Vasiliy Ulyanov [Mon, 4 Mar 2013 05:38:04 +0000 (09:38 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vasiliy Ulyanov [Mon, 4 Mar 2013 05:37:35 +0000 (09:37 +0400)]
Add buffer char device skeleton
Vyacheslav Cherkashin [Fri, 1 Mar 2013 09:37:23 +0000 (13:37 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vyacheslav Cherkashin [Fri, 1 Mar 2013 08:17:20 +0000 (12:17 +0400)]
remove deadlock when disarming of children
recursive deadlock when call function 'dbi_disarm_urp_inst_for_task'
Andreev S.V [Fri, 1 Mar 2013 08:05:06 +0000 (12:05 +0400)]
Added functionality for trap (undef. instr) overhead calculation (ARM)
When compiled with support of this functionality swap kprobe module will send
SIGUSR1 signal to userspace application after triggering 100000 traps
(undef.instructions). After that it can calculate the overhead of one trap
(transition from user to kernel and from kernel to user) as a difference of
time when catching signal SIGUSR1 in signal handler and time before first
undef.instruction which is divided on amount of traps (100000).
Anastasia Lyupa [Thu, 28 Feb 2013 15:17:46 +0000 (19:17 +0400)]
optimization of pack_event_info
remove memset() from pack_task_event_info()
Vyacheslav Cherkashin [Wed, 27 Feb 2013 11:44:15 +0000 (15:44 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vyacheslav Cherkashin [Wed, 27 Feb 2013 11:44:03 +0000 (15:44 +0400)]
add 'synchronize_sched' in func 'dbi_unregister_kprobe'
Vasiliy Ulyanov [Wed, 27 Feb 2013 07:59:16 +0000 (11:59 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vasiliy Ulyanov [Wed, 27 Feb 2013 07:53:00 +0000 (11:53 +0400)]
Fix user space retprobe disarming
For functions which do not push return address on stack
Dmitry Kovalenko [Wed, 27 Feb 2013 06:06:03 +0000 (10:06 +0400)]
Totaly remove Makefiles without extension '.am'
Vyacheslav Barinov [Tue, 26 Feb 2013 12:55:11 +0000 (16:55 +0400)]
Small rm fix for directory deletion
Vyacheslav Cherkashin [Wed, 20 Feb 2013 14:56:46 +0000 (18:56 +0400)]
remove uretprobes in children task
Vasiliy Ulyanov [Tue, 19 Feb 2013 10:24:34 +0000 (14:24 +0400)]
Fix __switch_to instrumentation
Only the next task is patched instead of doing it for all
threads and processes
Vasiliy Ulyanov [Tue, 19 Feb 2013 10:14:01 +0000 (14:14 +0400)]
Substitute panic(...) with printk(...) in dbi_unregister_uretprobe
Sometimes the stack cannot be recovered after userspace instrumentation
because the corresponding function does not save LR value. In this case
it is better to print a warning instead of calling panic (the worst that
can happen is the instrumented application crashing with segmentation
fault). Currently the function _start is known to cause such an error.
But actually it never returns so it is save to ignore this issue and
just recycle the coresponding retprobe instance.
Alexander Aksenov [Fri, 15 Feb 2013 12:43:56 +0000 (16:43 +0400)]
Fix sparce warnings in kprobe
Vyacheslav Cherkashin [Thu, 14 Feb 2013 16:42:05 +0000 (20:42 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vyacheslav Cherkashin [Thu, 14 Feb 2013 16:41:23 +0000 (20:41 +0400)]
check for correct values
Alexander Aksenov [Thu, 14 Feb 2013 16:27:46 +0000 (20:27 +0400)]
Fix new sparce warnings in kprobe
Vyacheslav Cherkashin [Thu, 14 Feb 2013 16:26:41 +0000 (20:26 +0400)]
kernel define 'pgd_offset_k' redefinition
Alexander Aksenov [Thu, 14 Feb 2013 15:57:31 +0000 (19:57 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Alexander Aksenov [Thu, 14 Feb 2013 15:57:21 +0000 (19:57 +0400)]
Fix new sparce warnings
Vyacheslav Cherkashin [Thu, 14 Feb 2013 14:47:03 +0000 (18:47 +0400)]
remove US probes set message
Alexander Aksenov [Wed, 13 Feb 2013 15:41:08 +0000 (19:41 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Alexander Aksenov [Wed, 13 Feb 2013 15:40:59 +0000 (19:40 +0400)]
Fix code style in dbi_kprobe_deps.c
Vasiliy Ulyanov [Wed, 13 Feb 2013 14:53:10 +0000 (18:53 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Alexander Aksenov [Wed, 13 Feb 2013 14:52:50 +0000 (18:52 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Alexander Aksenov [Wed, 13 Feb 2013 14:52:45 +0000 (18:52 +0400)]
Vasiliy Ulyanov [Wed, 13 Feb 2013 13:34:49 +0000 (17:34 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Vasiliy Ulyanov [Wed, 13 Feb 2013 13:13:52 +0000 (17:13 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Conflicts:
src/modules/driver/us_proc_inst.h
src/modules/kprobe/arch/dbi_kprobes.c
src/modules/kprobe/dbi_kprobes.c
Vasiliy Ulyanov [Wed, 13 Feb 2013 12:55:15 +0000 (16:55 +0400)]
Fix deferred retprobes deletion
Every retprobe instance now saves current sp value which is used to
recover original function's return address. Additionally this modification
may fix the issue with double return events for __switch_to function and also
possible memory leaks with __switch_to/do_exit retprobes instances.
Vasiliy Ulyanov [Wed, 13 Feb 2013 08:01:38 +0000 (12:01 +0400)]
Add possibility to retrieve userspace registers saved before syscall entry
Vyacheslav Cherkashin [Tue, 12 Feb 2013 14:06:01 +0000 (18:06 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Conflicts:
src/modules/driver/events.h
Vyacheslav Cherkashin [Tue, 12 Feb 2013 13:57:44 +0000 (17:57 +0400)]
remove old handlers setting method
Alexander Aksenov [Tue, 12 Feb 2013 13:55:30 +0000 (17:55 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Alexander Aksenov [Tue, 12 Feb 2013 13:55:21 +0000 (17:55 +0400)]
Final sparce warinigs fix for kprobe