[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Mon, 12 Dec 2022 17:35:13 +0800
From: Qing Zhang <zhangqing@...ngson.cn>
To: Hengqi Chen <chenhengqi@...look.com>,
Tiezhu Yang <yangtiezhu@...ngson.cn>,
Huacai Chen <chenhuacai@...nel.org>,
WANG Xuerui <kernel@...0n.name>,
Masami Hiramatsu <mhiramat@...nel.org>
Cc: loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v10 0/4] Add kprobe and kretprobe support for LoongArch
Hi, Hengqi
On 2022/12/12 下午4:41, Hengqi Chen wrote:
> Hi, Tiezhu:
>
> I tested this patchset from BPF side, failed with EINVAL:
>
> $ cat /sys/kernel/tracing/error_log
> [ 262.299093] trace_kprobe: error: Failed to register probe event
> Command: p:kprobes/libbpf_4609_inet_bind_0x0_0 inet_bind+0x0
>
This is because KPROBE_ON_FTRACE is not yet supported. Trace Event
cannot be used now.
We will support it soon, if you want to test it by install
kprobe_example.ko as jeff did.
Thanks
-Qing ^
> --
> Hengqi
>
> On 2022/12/9 16:52, Tiezhu Yang wrote:
>> v10:
>> -- Remove sign_extend() based on the latest code
>> -- Rename insns_are_not_supported() to insns_not_supported()
>> -- Rename insns_are_not_simulated() to insns_not_simulated()
>> -- Set KPROBE_HIT_SSDONE if cur->post_handler is not NULL
>> -- Enable preemption for KPROBE_REENTER in kprobe_fault_handler()
>>
>> v9:
>> -- Rename sign_extended() to sign_extend()
>> -- Modify kprobe_fault_handler() to handle all of kprobe_status
>>
>> v8:
>> -- Put "regs->csr_prmd &= ~CSR_PRMD_PIE;" ahead to save one line
>> -- Add code comment of preempt_disable()
>> -- Put kprobe_page_fault() in __do_page_fault()
>> -- Modify the check condition of break insn in kprobe_breakpoint_handler()
>>
>> v7:
>> -- Remove stop_machine_cpuslocked() related code
>>
>> v6:
>> -- Add a new patch to redefine larch_insn_patch_text() with
>> stop_machine_cpuslocked()
>> -- Modify kprobe_breakpoint_handler() to consider the original
>> insn is break and return the correct value
>> -- Modify do_bp() to refresh bcode when original insn is break
>>
>> v5:
>> -- Rebase on the latest code
>> -- Use stop_machine_cpuslocked() to modify insn to avoid CPU race
>>
>> v4:
>> -- Remove kprobe_exceptions_notify() in kprobes.c
>> -- Call kprobe_breakpoint_handler() and kprobe_singlestep_handler()
>> in do_bp()
>>
>> v3:
>> -- Rebase on the latest code
>> -- Check the alignment of PC in simu_branch() and simu_pc()
>> -- Add ibar in flush_insn_slot()
>> -- Rename kprobe_{pre,post}_handler() to {post_}kprobe_handler
>> -- Add preempt_disable() and preempt_enable_no_resched()
>> -- Remove r0 save/restore and do some minor changes
>> in kprobes_trampoline.S
>> -- Do not enable CONFIG_KPROBES by default
>>
>> v2:
>> -- Split simu_branch() and simu_pc() into a single patch
>> -- Call kprobe_page_fault() in do_page_fault()
>> -- Add kprobes_trampoline.S for kretprobe
>>
>> Tiezhu Yang (4):
>> LoongArch: Simulate branch and PC instructions
>> LoongArch: Add kprobe support
>> LoongArch: Add kretprobe support
>> samples/kprobes: Add LoongArch support
>>
>> arch/loongarch/Kconfig | 2 +
>> arch/loongarch/include/asm/inst.h | 20 ++
>> arch/loongarch/include/asm/kprobes.h | 59 +++++
>> arch/loongarch/include/asm/ptrace.h | 1 +
>> arch/loongarch/kernel/Makefile | 2 +
>> arch/loongarch/kernel/inst.c | 123 ++++++++++
>> arch/loongarch/kernel/kprobes.c | 364 +++++++++++++++++++++++++++++
>> arch/loongarch/kernel/kprobes_trampoline.S | 96 ++++++++
>> arch/loongarch/kernel/traps.c | 13 +-
>> arch/loongarch/mm/fault.c | 3 +
>> samples/kprobes/kprobe_example.c | 8 +
>> 11 files changed, 687 insertions(+), 4 deletions(-)
>> create mode 100644 arch/loongarch/include/asm/kprobes.h
>> create mode 100644 arch/loongarch/kernel/kprobes.c
>> create mode 100644 arch/loongarch/kernel/kprobes_trampoline.S
>>
Powered by blists - more mailing lists