Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp7726054rwb; Mon, 12 Dec 2022 19:33:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf79uUsQ8aExsX9OlVLXH3emZcxOaNhKmsaTqN23ztk9RVMXaLlpriFU3CsSAAIVmcUdkPM1 X-Received: by 2002:a50:ee1a:0:b0:46b:6214:44c8 with SMTP id g26-20020a50ee1a000000b0046b621444c8mr15187320eds.39.1670902418145; Mon, 12 Dec 2022 19:33:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670902418; cv=none; d=google.com; s=arc-20160816; b=w6NQ1QGYHpUV0lqh6Lzpg3Br9oYc/2LTak2IIwknX+bAv2p1wRNrlCdb8zrElDmbKJ IBunYZTwHeqcjdw7knrwmPR7z76JRY8A2lNBGWuo5RXmg0VdKhReB02dasq7C8Ctj6j1 HtepQN6v1zrZxzVrmfOExZmkbdpreDyhCIbhQz6LGK/Nxf2LfZ2ce5dRKJPURceZq/jt 6NUBNqbTIcdEnDYA4fW6yNNyzqg1Mg6n0gnyHmbFfIjONzfOmq9deVciPsO7k35as4Kz obNK82eweEK5rH2QilZSymQbzYI67emKYcq12YslW1KJSxbTlWJMsbjqXoS2y4eF5gKQ aAhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=dNjhRRaJeOVKt9Xmg8ZwLRsJDo1K4m5W2SeBQQW9ZZg=; b=BxK1vQYyfMovwpVzJekliZUQLeiE2Kb7AU6mhlp3Vj/Jgr5JpwNUu+P+wPGPTU527e /RMYA3U36xmDZsQ8QIq+/ts5x9liRwg2Ml0KUjWQfDU5WAJ80OmACQh9XdceJJAAx69O MViqc/U3H7bvKHFjoCRlXYqzSqoCw2GgNqRiqutRk1iy63DjWyqQdnbaOefBO0MzsZ4d kDsz8Mz6Lz0fYXnzvAUkFVNC+3cg2d7w+8H8RaaqReMYd20JJuHmaNFYz+r6qp9VR9lB q/4thi4QgGL2bKCQ8uC+L3LnyD2bpoMrUkN7IbGnDIRAJPvjbN+rCCkJL2LOBdtyVWPq 9kjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jkXWvDIM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h18-20020a056402281200b0046b953601besi10220454ede.29.2022.12.12.19.33.19; Mon, 12 Dec 2022 19:33:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jkXWvDIM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233813AbiLMDKW (ORCPT + 75 others); Mon, 12 Dec 2022 22:10:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34746 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230002AbiLMDKS (ORCPT ); Mon, 12 Dec 2022 22:10:18 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5A3B13D05 for ; Mon, 12 Dec 2022 19:10:17 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 68F066130A for ; Tue, 13 Dec 2022 03:10:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A6E86C433EF; Tue, 13 Dec 2022 03:10:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1670901016; bh=CdvdAdS5jLjYKwNJdlUzw0ngvoQU+3buJ2cmorcHmeg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=jkXWvDIMOd0wDwhOi2HefKyt/fKhOtF/kqfqjCn86OUmc2dKGKhfPwXrIAoxAuTKg dBUFAfFV3Nka8GSk5UvwwQljN+8P/cJTqICGvVZcwMOFjtTZd2FLG4C/H7ruOhCumO Awhri52tNRBwIs4YxOKjGA+OqaxOfaqwtEulnYCySg6P91d0+pZI9iIW5nfr98/Jwd ILHYXgWB/FuOQpAcX5AqbVrN6IlkEblTLHSvyegSbomz1ehk4F/HmFNa2OKSe+2M/H CpqdIGPW5+ozY8bP39fjPzxncm1aaP/VSFop5o0YGfxjnGovTDNDP3sXfgoT5X6uod ddb0eZU8jDfKg== Date: Tue, 13 Dec 2022 12:10:13 +0900 From: Masami Hiramatsu (Google) To: Huacai Chen Cc: Tiezhu Yang , Jeff Xie , WANG Xuerui , Masami Hiramatsu , loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v10 0/4] Add kprobe and kretprobe support for LoongArch Message-Id: <20221213121013.b09182c5842171f3f25a2e59@kernel.org> In-Reply-To: References: <1670575981-14389-1-git-send-email-yangtiezhu@loongson.cn> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 9 Dec 2022 18:01:44 +0800 Huacai Chen wrote: > Hi, Masami, > > This series looks good to me now, but I'm not familiar with kprobes. > So, if you have any comments, please let me know. Sorry I missed this series. Let me add some comments. BTW, I don't have any board to run the loongarch, so I'll make comments just about style issues. Thanks, > > And Jeff, > > As we all know, you are an expert in this domain, so could you please > help me to test this series? > > If there are no objections, I plan to merge this series in a few days. > But since the next merge window will be open soon, if there are any > problems, I will revert the patches to wait for the next cycle. > > Thanks, > Huacai > > On Fri, Dec 9, 2022 at 4:53 PM 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 > > > > -- > > 2.1.0 > > -- Masami Hiramatsu (Google)