Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1918963rwd; Mon, 15 May 2023 05:06:01 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7RR3P2FWwCNJ0GAG2IzXxBt/UrlJ7OeRoLdSLbu5zjguSIuNQspY1L0W/wi43SnvMUkfQE X-Received: by 2002:a05:6870:5482:b0:187:8110:a175 with SMTP id f2-20020a056870548200b001878110a175mr14672354oan.16.1684152361057; Mon, 15 May 2023 05:06:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684152361; cv=none; d=google.com; s=arc-20160816; b=KKy04ae10bgcjhDHHhzpxsh39yNLLKdSxTnqJbhwFw1ccdSf2ueoJQIWfT/MwPYN0X Y3D9Og7qB9vvznEzUW9/cYkQSNSBSflGWNy+kYGmrxqY+sj+CZ2Js3DDktcEAPUFPufG J0JpzurJSgiCJJc7JyBngZa3ZHNUsd0n0it/sfE7BvwgYp537IIfDJQFdbwGnkafjIsn M3zkuGdF9yqgb2zRi/Wa/6y7gQoZD+DQkAnE0RrYV+m/MN+i6B0IQFc+GGoD0UjAsXuT S/GS+CS1LoaMbESvdBehqegK9Z7eJx9LCLkxX3mijHfbQ9GZkHOHs8oZagX651iaZjBC /zxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:to:content-language:subject:user-agent:mime-version:date :message-id; bh=mwUpDCNiqu3MoOcQr/FCrvZzkqUHuw1wo+aZo6nb+Us=; b=wMcAv6w9Tswf2a9OcxjRKv3fZtQxE/Ed1iOYE/wzCDG6u7Y2zPB5jRUMpRW73kEvJn oJklDKCBUxnAWK/y5WyxbsSfrE3yU1kO2lfkE19GspecN9MfTVSe6gfbt1qrLZRncE1u 62vppx0TBT5KwSbCisn0GJZz+lM46nFMsBfILZl6no2mPa7Hwkz37S4NqJd4j/jVIqBb Z6IyCJuNM9Z09v0BBnGsDxjUVdsjROWATplHmdrACeiS3ZAUFvZ9xZ6uq6weXRSeQlMv vGNTo9tpO3UFuSx+rOAT6IhZUK5mz2Kcux7AQCdJtPKvnQJ7dvPHoqx0Ux68xV8DghqA b9lg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f21-20020a056870c11500b0018454734d72si16929366oad.2.2023.05.15.05.05.46; Mon, 15 May 2023 05:06:01 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241705AbjEOL6l (ORCPT + 99 others); Mon, 15 May 2023 07:58:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241653AbjEOL6K (ORCPT ); Mon, 15 May 2023 07:58:10 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 074532D60 for ; Mon, 15 May 2023 04:55:40 -0700 (PDT) Received: from kwepemi500008.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4QKd780JgPzsRpS; Mon, 15 May 2023 19:53:40 +0800 (CST) Received: from [10.67.109.254] (10.67.109.254) by kwepemi500008.china.huawei.com (7.221.188.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 15 May 2023 19:55:37 +0800 Message-ID: Date: Mon, 15 May 2023 19:55:37 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: Re: [PATCH v3] riscv: fix kprobe __user string arg print fault issue Content-Language: en-US To: , , , , References: <20230504072910.3742842-1-ruanjinjie@huawei.com> From: Ruan Jinjie In-Reply-To: <20230504072910.3742842-1-ruanjinjie@huawei.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.109.254] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemi500008.china.huawei.com (7.221.188.139) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 Ping. On 2023/5/4 15:29, Ruan Jinjie wrote: > On riscv qemu platform, when add kprobe event on do_sys_open() to show > filename string arg, it just print fault as follow: > > echo 'p:myprobe do_sys_open dfd=$arg1 filename=+0($arg2):string flags=$arg3 > mode=$arg4' > kprobe_events > > bash-166 [000] ...1. 360.195367: myprobe: (do_sys_open+0x0/0x84) > dfd=0xffffffffffffff9c filename=(fault) flags=0x8241 mode=0x1b6 > > bash-166 [000] ...1. 360.219369: myprobe: (do_sys_open+0x0/0x84) > dfd=0xffffffffffffff9c filename=(fault) flags=0x8241 mode=0x1b6 > > bash-191 [000] ...1. 360.378827: myprobe: (do_sys_open+0x0/0x84) > dfd=0xffffffffffffff9c filename=(fault) flags=0x98800 mode=0x0 > > As riscv do not select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE, > the +0($arg2) addr is processed as a kernel address though it is a > userspace address, cause the above filename=(fault) print. So select > ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE to avoid the issue, after that the > kprobe trace is ok as below: > > bash-166 [000] ...1. 96.767641: myprobe: (do_sys_open+0x0/0x84) > dfd=0xffffffffffffff9c filename="/dev/null" flags=0x8241 mode=0x1b6 > > bash-166 [000] ...1. 96.793751: myprobe: (do_sys_open+0x0/0x84) > dfd=0xffffffffffffff9c filename="/dev/null" flags=0x8241 mode=0x1b6 > > bash-177 [000] ...1. 96.962354: myprobe: (do_sys_open+0x0/0x84) > dfd=0xffffffffffffff9c filename="/sys/kernel/debug/tracing/events/kprobes/" > flags=0x98800 mode=0x0 > > Signed-off-by: Ruan Jinjie > Acked-by: Björn Töpel > --- > v2: > - add the config in alphabetical order > --- > v3: > - change signed-off-by to use full name > --- > arch/riscv/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index d2967fefa1d7..b08ed929e220 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -26,6 +26,7 @@ config RISCV > select ARCH_HAS_GIGANTIC_PAGE > select ARCH_HAS_KCOV > select ARCH_HAS_MMIOWB > + select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE > select ARCH_HAS_PMEM_API > select ARCH_HAS_PTE_SPECIAL > select ARCH_HAS_SET_DIRECT_MAP if MMU