Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp2812194imw; Wed, 6 Jul 2022 12:10:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t0vwKAGQlH9AJerDWzyCFhD/VRM3Giureern+L3nSgRxPiMwSjw2Uczt8oWRmAgxJ2KQri X-Received: by 2002:a63:5302:0:b0:412:219:928f with SMTP id h2-20020a635302000000b004120219928fmr22046980pgb.425.1657134654655; Wed, 06 Jul 2022 12:10:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657134654; cv=none; d=google.com; s=arc-20160816; b=EF2slbYRLBI/N0whNE3uo0eHjsz0BIBBowBg/CIhwcmMBm3ND756qkiXmh9kaw1UUX 1VO+0k9Bls33r+gA4rQ//smdot5P0zOWyXJ3ChYqJnbd2ijQ1HHyvEacJia6fQRsR5fW sOs/kXvJ5rAIXtCI7zyEW9x7rNLVRBTfqV1tZxDX8gNTEScfUKZOCsuppnG6Z1m+ymvn 7kzhQUIFdskiYCG8+fkaB3K3XMYZH2NdCzc5z6wB0sSS7mES7u7QGqRU/E7jAYp7c8yV DOOoOnzMPBagqzhwnLSV7IEwB8IwiZA7xuHm/+bcJi/EGwmnBIP92SdPMTlY2ULalOQd Mvpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:user-agent :content-transfer-encoding:references:in-reply-to:date:cc:to:from :subject:message-id:dkim-signature; bh=8OpX98BdNjzL4c9/zXcQ1IRlRSzRCfTXd4u/sYs5SdU=; b=BTs2SNAwIPUfY8KKHVLrZ30/GTIF+ZVaPlKMt3oyMKreo445SZ8A6qMcv8qRSw8NTL HVfZbCREOQeAWw83VnaqbiEUnF39r1PrwMl3U4EhvHqQyioCA3scLlGi2lALvHgGXCJ/ 0RAzsJFX9RTl43vDK30wPseD8wjhpZdnk9a/hfocQx6IwfgTqaw4dca7dUf9SFarobIF SsXbF+Xcp3u2lEUMm0Ya0yIS8AieJ9I3o7HKjCoYG8JTzzyT0IxzAg8XWCjw49w2gaWb BHXcoeXDzsK7Z+dWDNVNgYhkGuMG4yA9WtEdo1m6O6QvIYhkt+sVTdM1Kw7H72a8jpeI 6GBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=j6V7v1Q5; 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 d4-20020a056a0010c400b005251e17bcb2si26086173pfu.254.2022.07.06.12.10.03; Wed, 06 Jul 2022 12:10:54 -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=j6V7v1Q5; 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 S233534AbiGFS52 (ORCPT + 99 others); Wed, 6 Jul 2022 14:57:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37480 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230502AbiGFS51 (ORCPT ); Wed, 6 Jul 2022 14:57:27 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [IPv6:2604:1380:40e1:4800::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 705C12A941 for ; Wed, 6 Jul 2022 11:57:26 -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 sin.source.kernel.org (Postfix) with ESMTPS id D065BCE2184 for ; Wed, 6 Jul 2022 18:57:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6C42FC341C8; Wed, 6 Jul 2022 18:57:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1657133842; bh=3pyBg39LrPKirhTu3ElE/l8VDa8MWwyaxAddo85Hrq4=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=j6V7v1Q5TEE20Pq5WdCiEXUuGCY/VQfyi2aJW3xpmbI/GHGxIlRVvigaijsXKnAH3 7+6kzpxEeunHMYvrW4Ict9GvCdHkqudlp3ZucA8eAgMr53ZTsEwNc6Sr1+KFdpSptx I6DW71u1D02t74am1oRyFjYmh5QRKhIPTbn51fsWU2CUgEh2U10/i8m8fjddvTIQer gfp2WOhcUVBKVcNVV+1vtoC1fyvPginUnncSt04eYyZRJFlL6WP1jmF6m/WmVUqoPP WHsAgwRTJO8IuIaf0q13QZaVgml4tZK8CulxVVhRbMM1QW0aqc4KsHsgJu1QnoeV1w UqrvCMHr8h7Xg== Message-ID: <732a3dd097707a57d4208f0bdb807abcd29ba224.camel@kernel.org> Subject: Re: [PATCH v2 06/15] SUNRPC: Trace the rpc_create_args From: Jeff Layton To: Chuck Lever , linux-nfs@vger.kernel.org Cc: trondmy@hammerspace.com Date: Wed, 06 Jul 2022 14:57:21 -0400 In-Reply-To: <165452706752.1496.657240546600966342.stgit@oracle-102.nfsv4.dev> References: <165452664596.1496.16204212908726904739.stgit@oracle-102.nfsv4.dev> <165452706752.1496.657240546600966342.stgit@oracle-102.nfsv4.dev> Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.2 (3.44.2-1.fc36) MIME-Version: 1.0 X-Spam-Status: No, score=-7.8 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 On Mon, 2022-06-06 at 10:51 -0400, Chuck Lever wrote: > 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. >=20 > Signed-off-by: Chuck Lever > --- > include/trace/events/sunrpc.h | 53 +++++++++++++++++++++++++++++++++--= ------ > net/sunrpc/clnt.c | 2 +- > 2 files changed, 44 insertions(+), 11 deletions(-) >=20 > diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.= h > index a66aa1f59ed8..986e135e314f 100644 > --- a/include/trace/events/sunrpc.h > +++ b/include/trace/events/sunrpc.h > @@ -139,36 +139,69 @@ DEFINE_RPC_CLNT_EVENT(release); > DEFINE_RPC_CLNT_EVENT(replace_xprt); > DEFINE_RPC_CLNT_EVENT(replace_xprt_err); > =20 > +TRACE_DEFINE_ENUM(RPC_XPRTSEC_NONE); > +TRACE_DEFINE_ENUM(RPC_XPRTSEC_TLS_X509); > +TRACE_DEFINE_ENUM(RPC_XPRTSEC_TLS_PSK); > + > +#define rpc_show_xprtsec_policy(policy) \ > + __print_symbolic(policy, \ > + { RPC_XPRTSEC_NONE, "none" }, \ > + { RPC_XPRTSEC_TLS_X509, "tls-x509" }, \ > + { RPC_XPRTSEC_TLS_PSK, "tls-psk" }) > + > +#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 > ), > =20 > - TP_ARGS(clnt, xprt, program, server), > + TP_ARGS(clnt, xprt, args), > =20 > 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) > ), > =20 > TP_fast_assign( > __entry->client_id =3D clnt->cl_clid; > + __entry->xprtsec =3D args->xprtsec; > + __entry->flags =3D 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); > ), > =20 > - TP_printk("client=3D" SUNRPC_TRACE_CLID_SPECIFIER > - " peer=3D[%s]:%s program=3D%s server=3D%s", > + TP_printk("client=3D" SUNRPC_TRACE_CLID_SPECIFIER " peer=3D[%s]:%s" > + " program=3D%s server=3D%s xprtsec=3D%s flags=3D%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) > + ) > ); > =20 > TRACE_EVENT(rpc_clnt_new_err, > diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c > index 6dcc88d45f5d..0ca86c92968f 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); > =20 > - trace_rpc_clnt_new(clnt, xprt, program->name, args->servername); > + trace_rpc_clnt_new(clnt, xprt, args); > return clnt; > =20 > out_no_path: >=20 >=20 All of these tracing patches seem like a reasonable thing to add on their own, IMO. It might be good to move them and some of the bugfixes to a separate series and get those merged ahead of the parts that add TLS support (which are more controversial). Reviewed-by: Jeff Layton