Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp4562884rwd; Tue, 30 May 2023 07:07:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4D2hnyV3Tmtlig1FJI45mAw3lCufuuVceHdslJVCj8BDq6scOcpL6z1DP3G6oXoJe/5580 X-Received: by 2002:a17:902:f682:b0:1af:a058:cc2d with SMTP id l2-20020a170902f68200b001afa058cc2dmr2640775plg.57.1685455675481; Tue, 30 May 2023 07:07:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685455675; cv=none; d=google.com; s=arc-20160816; b=JUNqo8+Rh2DqUfYzSuGx5eRhHCX/AZtmantK6g4EmPoxVYCA1sJU+W+ZBzGxjTlj5i M6L14Wxrr8IwqBmxl4q4ggJ0aN4Ad98oQoQgadnlY9K0CyFE/qIo0BBr8wIEqQtORgQ1 wldiXsR4lQDnou95CvUZM+0Vd86eN98w5qy4WBegzD2xeWX3YykR9iHBk8Rvc2Rgq2/w RrKHZNDaiR9DNcHJ5LVQUoQgbAsy5MXSI1A4gL4gk2cpPerGx7Nz/hfmRrcO7mCXO4V4 r7cft9WHG1p4VIn9wtvrqOy2vyRdPAYBjs0Udw3nxKWN8ZWGrGTj/TzBnRkK3T1i+BW8 4/BQ== 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 :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject:dkim-signature; bh=1lGx5CS5wsvCVXLbXLHwukHyhSjpJmDDIoKTEm7uddI=; b=C2lgHxA2gTTV5Ncuq5cxXEWpnpOgf8uu/6AhbLx+LetOc9NGL/1khzAV+Umh9kAD9o DW6iOBjwkvWsgCExWVtlx9p2HAo1vGgC0Z2j4K/jC3x18qTB9xW7vo7VWoArX5ksF1bf h5Hgs5Z9IbxDBDI0nLdZp66iNMKyTU7tedvzsxTpdcDZWhEr/ECNpQ/9j1mqRRW/mFgJ oqoeY7Upu6dml1d0ViDI7Ax0aU30LNm6cRMi/BAdOdAEwbd1yHxvALxC+n8SEzM+ldLi j06Ngdl7oA7ZRhiLrA9ouCuHjIfcmB/qml5QX58pwrWJokZxnQkljBC/d3hK35UnqSZA qixQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="Y/h9wQfL"; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-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 y4-20020a170902ed4400b001b024ab08fbsi7040521plb.59.2023.05.30.07.07.40; Tue, 30 May 2023 07:07:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-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="Y/h9wQfL"; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-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 S232895AbjE3OGr (ORCPT + 99 others); Tue, 30 May 2023 10:06:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232837AbjE3OGq (ORCPT ); Tue, 30 May 2023 10:06:46 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2298A100 for ; Tue, 30 May 2023 07:06:43 -0700 (PDT) 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 ADE43622B2 for ; Tue, 30 May 2023 14:06:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9148BC433EF; Tue, 30 May 2023 14:06:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1685455602; bh=KwzLoOUAz/qQMUuX22LqTi45EsrZFW5E9YpM7VTUPDM=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=Y/h9wQfLzEfRJ6XtOWXBSzmudq4GwxSXn1AeX0EX18jKDJGMY8NHNkzOQk65/hh2d ekfK8rml/EDAB+tDy/ZYfEmXnsRHSvvu0MkcB+oF/Qyo4fw1PIIdQQdjAeRlnpID6y e+nuzH2KDLXTE4hlMaEr94vdA8hbj9ARDMmHpvf0e0AlrYVFA5aDvc9FpaXgVWWA0k te0vENA79xs5Orf+ndT/yBvvju1XPFdLridi3NEx1JoHhGfiUJmNGJkiPY2r5sPB7j 1YbsEArWsV+v9zhC7ZncqBflUed+s0b5WeZmMxXPZ9edV0IiYA9tKAl5DllyTlzeAL gG9aCW2bJJbDw== Subject: [PATCH v3 03/11] SUNRPC: Trace the rpc_create_args From: Chuck Lever To: anna.schumaker@netapp.com, trondmy@hammerspace.com Cc: Chuck Lever , Jeff Layton , jlayton@redhat.com, linux-nfs@vger.kernel.org, kernel-tls-handshake@lists.linux.dev Date: Tue, 30 May 2023 10:06:30 -0400 Message-ID: <168545558044.1917.18019099154185913346.stgit@oracle-102.nfsv4bat.org> In-Reply-To: <168545533442.1917.10040716812361925735.stgit@oracle-102.nfsv4bat.org> References: <168545533442.1917.10040716812361925735.stgit@oracle-102.nfsv4bat.org> User-Agent: StGit/1.5 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, 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-nfs@vger.kernel.org From: Chuck Lever Pass the upper layer's rpc_create_args to the rpc_clnt_new() tracepoint so additional parts of the upper layer's request can be recorded. Signed-off-by: Chuck Lever Reviewed-by: Jeff Layton --- include/trace/events/sunrpc.h | 52 +++++++++++++++++++++++++++++++++-------- net/sunrpc/clnt.c | 2 +- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index 31bc7025cb44..34784f29a63d 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h @@ -139,36 +139,68 @@ DEFINE_RPC_CLNT_EVENT(release); DEFINE_RPC_CLNT_EVENT(replace_xprt); DEFINE_RPC_CLNT_EVENT(replace_xprt_err); +TRACE_DEFINE_ENUM(RPC_XPRTSEC_NONE); +TRACE_DEFINE_ENUM(RPC_XPRTSEC_TLS_X509); + +#define rpc_show_xprtsec_policy(policy) \ + __print_symbolic(policy, \ + { RPC_XPRTSEC_NONE, "none" }, \ + { RPC_XPRTSEC_TLS_ANON, "tls-anon" }, \ + { RPC_XPRTSEC_TLS_X509, "tls-x509" }) + +#define rpc_show_create_flags(flags) \ + __print_flags(flags, "|", \ + { RPC_CLNT_CREATE_HARDRTRY, "HARDRTRY" }, \ + { RPC_CLNT_CREATE_AUTOBIND, "AUTOBIND" }, \ + { RPC_CLNT_CREATE_NONPRIVPORT, "NONPRIVPORT" }, \ + { RPC_CLNT_CREATE_NOPING, "NOPING" }, \ + { RPC_CLNT_CREATE_DISCRTRY, "DISCRTRY" }, \ + { RPC_CLNT_CREATE_QUIET, "QUIET" }, \ + { RPC_CLNT_CREATE_INFINITE_SLOTS, \ + "INFINITE_SLOTS" }, \ + { RPC_CLNT_CREATE_NO_IDLE_TIMEOUT, \ + "NO_IDLE_TIMEOUT" }, \ + { RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT, \ + "NO_RETRANS_TIMEOUT" }, \ + { RPC_CLNT_CREATE_SOFTERR, "SOFTERR" }, \ + { RPC_CLNT_CREATE_REUSEPORT, "REUSEPORT" }) + TRACE_EVENT(rpc_clnt_new, TP_PROTO( const struct rpc_clnt *clnt, const struct rpc_xprt *xprt, - const char *program, - const char *server + const struct rpc_create_args *args ), - TP_ARGS(clnt, xprt, program, server), + TP_ARGS(clnt, xprt, args), TP_STRUCT__entry( __field(unsigned int, client_id) + __field(unsigned long, xprtsec) + __field(unsigned long, flags) + __string(program, clnt->cl_program->name) + __string(server, xprt->servername) __string(addr, xprt->address_strings[RPC_DISPLAY_ADDR]) __string(port, xprt->address_strings[RPC_DISPLAY_PORT]) - __string(program, program) - __string(server, server) ), TP_fast_assign( __entry->client_id = clnt->cl_clid; + __entry->xprtsec = args->xprtsec.policy; + __entry->flags = args->flags; + __assign_str(program, clnt->cl_program->name); + __assign_str(server, xprt->servername); __assign_str(addr, xprt->address_strings[RPC_DISPLAY_ADDR]); __assign_str(port, xprt->address_strings[RPC_DISPLAY_PORT]); - __assign_str(program, program); - __assign_str(server, server); ), - TP_printk("client=" SUNRPC_TRACE_CLID_SPECIFIER - " peer=[%s]:%s program=%s server=%s", + TP_printk("client=" SUNRPC_TRACE_CLID_SPECIFIER " peer=[%s]:%s" + " program=%s server=%s xprtsec=%s flags=%s", __entry->client_id, __get_str(addr), __get_str(port), - __get_str(program), __get_str(server)) + __get_str(program), __get_str(server), + rpc_show_xprtsec_policy(__entry->xprtsec), + rpc_show_create_flags(__entry->flags) + ) ); TRACE_EVENT(rpc_clnt_new_err, diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index a18074f8edf2..4cdb539b5854 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -435,7 +435,7 @@ static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, if (parent) refcount_inc(&parent->cl_count); - trace_rpc_clnt_new(clnt, xprt, program->name, args->servername); + trace_rpc_clnt_new(clnt, xprt, args); return clnt; out_no_path: