Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp193956rwr; Wed, 26 Apr 2023 23:15:21 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ521YArGxNcowJldebCCd8xXAGEFXnn7OGH7gUMjNI2/5bNvfe+es0hJDcKCwmke6dDRzA7 X-Received: by 2002:a05:6a21:3393:b0:f5:9f72:1aa2 with SMTP id yy19-20020a056a21339300b000f59f721aa2mr637235pzb.6.1682576121281; Wed, 26 Apr 2023 23:15:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682576121; cv=none; d=google.com; s=arc-20160816; b=Xl8RoDj0FYi3SUxR66GkpArNGEK0hrIwrGhUsyc4RIzTkTb98uJgJNXQ5jckhHLPfB ln+vzTx512ZDvV2wRCn06kYynTK7/+LBJ13lJAz1LDNQivaL21UCFBZROiJnDL2Z4kVM Ha1Mjl/1qAz0W8mQgKiUWNM+6wxlmmle9K9kzX16+srP2D7FDr6XoK1kDIK1KbM59SmE gtGZOg3Ro3txJxpFDIPb16bEtZ77I5F+uj1Ef/FqMHUdbAtkqdvpJMudU7r24nKXEQRK WSFBNC1+CitJWG38Ex0tDHllg75W63DySYVOKeEqoFt+Iy2gMz8xhKbfjSz2shNl4H2B 0mpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from; bh=B2jEEVrYDr1YiwFUZc41k5SQf8Tf3DJdMY3X7hkMWeA=; b=JfGwZcrQyWYi1cpt4PlsbEXjOaje3dtDv5tvOMSOqTDAzvjddJRD2O78OBc39zlKjk NljFMP8gUurKYqCYUm4Ur/GDYjZZwvUnGj3NCM0mCm9dM/036IAAHQ62Y4xgWeefipm0 vXtIr6zp3VeWqbtKppJEKRKxPEd9wXTAyiT11o/K6rZs8Wf6yfemuY8deO3CpZmDiXNA /xBDqblNs6BzoJcT7+tLbNFcezEE5Q82QsRKaH1shFw3u3W3CGwarr5g2VPygYsYChtL MpgfaVfHN3lLWfmK0dbLlAnOiY+wv10K9b0lhlIl/LOpTXGS+Xc2jfl6VPWsUuGwFkZ4 P7sA== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g192-20020a636bc9000000b0050fad5c0e52si17701874pgc.830.2023.04.26.23.15.08; Wed, 26 Apr 2023 23:15:21 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242963AbjD0GMg (ORCPT + 99 others); Thu, 27 Apr 2023 02:12:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236396AbjD0GMe (ORCPT ); Thu, 27 Apr 2023 02:12:34 -0400 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C56E2718; Wed, 26 Apr 2023 23:12:27 -0700 (PDT) X-UUID: ba6ee2f163474272a7abca873f06b3df-20230427 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.22,REQID:8504591b-8155-42a9-8669-fd081f2c4318,IP:10, URL:0,TC:0,Content:0,EDM:0,RT:0,SF:-9,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:1 X-CID-INFO: VERSION:1.1.22,REQID:8504591b-8155-42a9-8669-fd081f2c4318,IP:10,UR L:0,TC:0,Content:0,EDM:0,RT:0,SF:-9,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:1 X-CID-META: VersionHash:120426c,CLOUDID:998317bf-e32c-4c97-918d-fbb3fc224d4e,B ulkID:230427141208U49KSSQY,BulkQuantity:0,Recheck:0,SF:24|17|19|43|102,TC: nil,Content:0,EDM:-3,IP:-2,URL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OS I:0,OSA:0,AV:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-UUID: ba6ee2f163474272a7abca873f06b3df-20230427 X-User: lienze@kylinos.cn Received: from fedora [(210.12.40.82)] by mailgw (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 942601865; Thu, 27 Apr 2023 14:12:06 +0800 From: Enze Li To: Youling Tang Cc: Huacai Chen , Steven Rostedt , Masami Hiramatsu , Mark Rutland , WANG Xuerui , linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, loongarch@lists.linux.dev, loongson-kernel@lists.loongnix.cn, Qing Zhang Subject: Re: [PATCH v2 5/5] LoongArch: Abstract DYNAMIC_FTRACE_WITH_ARGS accesses In-Reply-To: <1682561552-32324-6-git-send-email-tangyouling@loongson.cn> (Youling Tang's message of "Thu, 27 Apr 2023 10:12:32 +0800") References: <1682561552-32324-1-git-send-email-tangyouling@loongson.cn> <1682561552-32324-6-git-send-email-tangyouling@loongson.cn> Date: Thu, 27 Apr 2023 14:16:06 +0800 Message-ID: <87h6t17sux.fsf@kylinos.cn> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY 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 Thu, Apr 27 2023 at 10:12:32 AM +0800, Youling Tang wrote: > From: Qing Zhang > > 1. Adds new ftrace_regs_{get,set}_*() helpers which can be used to manipulate > ftrace_regs. When CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y, these can always > be used on any ftrace_regs, and when CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=n > these can be used when regs are available. A new ftrace_regs_has_args(fregs) > helper is added which code can use to check when these are usable. > > 2. Prepare ftrace_regs_set_instruction_pointer support in advance. > > Signed-off-by: Qing Zhang > --- > arch/loongarch/include/asm/ftrace.h | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/arch/loongarch/include/asm/ftrace.h b/arch/loongarch/include/asm/ftrace.h > index f789e680f633..30ee01243416 100644 > --- a/arch/loongarch/include/asm/ftrace.h > +++ b/arch/loongarch/include/asm/ftrace.h > @@ -54,6 +54,31 @@ static __always_inline struct pt_regs *arch_ftrace_get_regs(struct ftrace_regs * > return &fregs->regs; > } > > +static __always_inline void > +ftrace_regs_set_instruction_pointer(struct ftrace_regs *fregs, > + unsigned long ip) > +{ > + regs_set_return_value(&fregs->regs, ip); > +} > + > +static __always_inline unsigned long > +ftrace_regs_get_instruction_pointer(struct ftrace_regs *fregs) > +{ > + return instruction_pointer(&fregs->regs); > +} > + > +#define ftrace_regs_get_argument(fregs, n) \ > + regs_get_kernel_argument(&(fregs)->regs, n) > +#define ftrace_regs_get_stack_pointer(fregs) \ > + kernel_stack_pointer(&(fregs)->regs) > +#define ftrace_regs_return_value(fregs) \ > + regs_return_value(&(fregs)->regs) > +#define ftrace_regs_set_return_value(fregs, ret) \ Hi Youling, > + regs_set_return_value(&(fregs)->regs, ret) ^^^^^^^^^^^^^^^^^^^^^^^^ I can not find the implementation of this function, am I missing something? > +#define ftrace_override_function_with_return(fregs) \ > + override_function_with_return(&(fregs)->regs) > +#define ftrace_regs_query_register_offset(name) \ ^^^^^^ There seems to be a missing function here. Otherwise, the backslash should be redundant. Did I understand correctly? Best Regards, Enze > + > #define ftrace_graph_func ftrace_graph_func > void ftrace_graph_func(unsigned long ip, unsigned long parent_ip, > struct ftrace_ops *op, struct ftrace_regs *fregs);