Vyacheslav Cherkashin [Wed, 3 Apr 2013 13:26:15 +0000 (17:26 +0400)]
[REFACTOR] move declaration patch_suspended_task()
from src/modules/kprobe/arch/dbi_kprobes.h
to src/modules/kprobe/dbi_kprobes.h
Vyacheslav Cherkashin [Wed, 3 Apr 2013 13:16:44 +0000 (17:16 +0400)]
[REFACTOR] move 'struct prev_kprobe'
from src/modules/kprobe/arch/dbi_kprobes.h
to src/modules/kprobe/arch/asm-arm/dbi_kprobes.h
Vyacheslav Cherkashin [Wed, 3 Apr 2013 11:28:34 +0000 (15:28 +0400)]
[REFACTOR] remove dbi_fp_backtrace()
Vyacheslav Cherkashin [Wed, 3 Apr 2013 10:12:11 +0000 (14:12 +0400)]
[REFACTOR] remove define REENTER
Vyacheslav Cherkashin [Wed, 3 Apr 2013 08:54:22 +0000 (12:54 +0400)]
[REFACTOR] rename and move arch_init_module_dependencies()
rename:
arch_init_module_dependencies() --> init_module_deps()
move:
from src/modules/kprobe/arch/dbi_kprobes.c
to src/modules/kprobe/dbi_kprobes.c
Vyacheslav Cherkashin [Wed, 3 Apr 2013 07:39:02 +0000 (11:39 +0400)]
[REFACTOR] rename and move arch_remove_kprobe()
rename:
arch_remove_kprobe() --> remove_kprobe()
move:
from src/modules/kprobe/arch/dbi_kprobes.c
to src/modules/kprobe/dbi_kprobes.c
Vyacheslav Cherkashin [Wed, 3 Apr 2013 07:29:51 +0000 (11:29 +0400)]
[REFACTOR] remove field 'rp2' from 'struct kretprobe_instance'
Vyacheslav Cherkashin [Wed, 3 Apr 2013 07:07:45 +0000 (11:07 +0400)]
[REFACTOR] code style fix for 'dbi_kprobes.c'
src/modules/kprobe/dbi_kprobes.c
Vyacheslav Cherkashin [Tue, 2 Apr 2013 14:34:59 +0000 (18:34 +0400)]
[REFACTOR] move declaration get_ukprobe_by_insn_slot()
from src/modules/kprobe/dbi_kprobes.h
to src/modules/uprobe/swap_uprobes.h
Vyacheslav Cherkashin [Tue, 2 Apr 2013 13:07:39 +0000 (17:07 +0400)]
[REFACTOR] redesign uprobe_handler()
Vyacheslav Cherkashin [Tue, 2 Apr 2013 12:50:25 +0000 (16:50 +0400)]
[REFACTOR] create restore_opcode_for_thumb()
Vyacheslav Cherkashin [Tue, 2 Apr 2013 09:51:42 +0000 (13:51 +0400)]
[REFACTOR] remove field 'tgid' from 'struct kprobe'
Vyacheslav Cherkashin [Tue, 2 Apr 2013 09:18:41 +0000 (13:18 +0400)]
[REFACTOR] redesign get_kprobe_by_insn_slot()
-struct kprobe *get_kprobe_by_insn_slot(kprobe_opcode_t *addr, pid_t tgid, struct pt_regs *regs);
+struct kprobe *get_ukprobe_by_insn_slot(void *addr, pid_t tgid, struct pt_regs *regs);
Vyacheslav Cherkashin [Tue, 2 Apr 2013 08:42:08 +0000 (12:42 +0400)]
[REFACTOR] redesign check_validity_insn()
-static int check_validity_insn(struct uprobe *up, struct pt_regs *regs)
+static int check_validity_insn(struct kprobe *p, struct pt_regs *regs)
Vyacheslav Cherkashin [Tue, 2 Apr 2013 07:47:45 +0000 (11:47 +0400)]
[REFACTOR] redesign get_uprobe()
-struct uprobe *get_uprobe(kprobe_opcode_t *addr, pid_t tgid)
+struct kprobe *get_ukprobe(void *addr, pid_t tgid)
Vyacheslav Cherkashin [Mon, 1 Apr 2013 11:40:34 +0000 (15:40 +0400)]
Merge branch 'dev' into kernel
Conflicts:
src/daemon/swap_daemon_stop.sh
Vyacheslav Cherkashin [Mon, 1 Apr 2013 10:11:21 +0000 (14:11 +0400)]
[REFACTOR] remove field 'disarm' from 'srtuct uretprobe'
Vyacheslav Cherkashin [Mon, 1 Apr 2013 09:09:58 +0000 (13:09 +0400)]
[REFACTOR] new interface arch_prepare_uprobe()
-int arch_prepare_uprobe(struct kprobe *p, struct task_struct *task, int atomic);
+int arch_prepare_uprobe(struct uprobe *up, int atomic);
Vyacheslav Cherkashin [Mon, 1 Apr 2013 09:01:35 +0000 (13:01 +0400)]
[REFACTOR] new interface remove_uprobe()
-static void remove_uprobe(struct kprobe *p, struct task_struct *task)
+static void remove_uprobe(struct uprobe *up)
Vyacheslav Cherkashin [Mon, 1 Apr 2013 08:55:10 +0000 (12:55 +0400)]
[REFACTOR] new interface disarm_uprobe()
-void disarm_uprobe(struct kprobe *p, struct task_struct *task);
+void disarm_uprobe(struct uprobe *p);
Vyacheslav Cherkashin [Mon, 1 Apr 2013 08:35:27 +0000 (12:35 +0400)]
[REFACTOR] new interface check_validity_insn()
-static int check_validity_insn(struct kprobe *p, struct pt_regs *regs, struct task_struct *task)
+static int check_validity_insn(struct uprobe *up, struct pt_regs *regs)
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/*
Kudrjavtsev Nickita [Tue, 26 Mar 2013 14:22:59 +0000 (18:22 +0400)]
[STYLE] delete comments from driver
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
Kudrjavtsev Nickita [Fri, 22 Mar 2013 15:33:16 +0000 (19:33 +0400)]
Merge branch 'dev' of 106.109.8.71:/srv/git/dbi into dev
Kudrjavtsev Nickita [Fri, 22 Mar 2013 15:31:56 +0000 (19:31 +0400)]
[FIX]fixing problem of failed second running on redwood_slp
Anastasia Lyupa [Fri, 22 Mar 2013 10:50:39 +0000 (14:50 +0400)]
[FIX] Flag VM_EXECUTABLE is not used in linux kernel since 3.7. I replace it by condition current->mm->exe_file == vma->vm_file in send_plt().
Anastasia Lyupa [Thu, 21 Mar 2013 15:42:10 +0000 (19:42 +0400)]
[FIX] zero_pfn() redefinition if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0).
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