From patchwork Wed Dec 20 21:31:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 10126607 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7A73560390 for ; Wed, 20 Dec 2017 21:31:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6CE9129929 for ; Wed, 20 Dec 2017 21:31:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 621B92993C; Wed, 20 Dec 2017 21:31:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0C8B429929 for ; Wed, 20 Dec 2017 21:31:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756603AbdLTVbZ (ORCPT ); Wed, 20 Dec 2017 16:31:25 -0500 Received: from mail-io0-f196.google.com ([209.85.223.196]:38865 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755718AbdLTVbX (ORCPT ); Wed, 20 Dec 2017 16:31:23 -0500 Received: by mail-io0-f196.google.com with SMTP id 87so14663878ior.5; Wed, 20 Dec 2017 13:31:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:from:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=d0j/y4ik8O6EfWovjVx6LXMvYUYcBdqaRXIUSUW+JMM=; b=CcZlWbxJ9LYRN+QIVbX7KW2yb1b62I9FAfZ0p+SQRJJBdc1fbAdCQCgbH/xEF3tosN UU0QPLvdmqMzelehQJHeZbzKrcpiaWhMrDUr5N/K/18HwY2+4pT8shxfOamAWWo3/DDc n1jRNgohG5RDm8HOFvFyTfzL4IzEH4Wvx4nZRe/7FG1IwHB2wCsKr0TwBUXVBLMoMkfo G/q9tzDdxOrVgqWocswyK6W+pbcXdT9qIzWN386CAepbJQV7NDOTD87bMMjTJB/nproV MFPH76oMSeOdWDzacFXC99FahTp85jWCbBuVslr+nnDkwyylPbXiRFtRMwvfGQZAyAXR fNvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:from:to:cc:date:message-id :in-reply-to:references:user-agent:mime-version :content-transfer-encoding; bh=d0j/y4ik8O6EfWovjVx6LXMvYUYcBdqaRXIUSUW+JMM=; b=OlGduF00sRghBrN0sD420F/7pQvkg9D43aVn5eJ1Y521NJpeZDZglYZM7OYMNqR6i6 tja8G4s+WENS0HwJIQZlRB0O4YIcQVHQfRj71R80X05LZOLWKudVb22ZE3xFTkhPnktk 6I+36sYYxDSqzUNEWY+7kaSUU0xP9eqWwj6atN22ZyPMMB+DOHLalIty4Hq3ZiXnOf73 dZOfNc8rfU8yjUTo57VRbqkbTg8FLFYFCMO0yGgyhEzoWUGiJEZHUnXGbba2UgFlxhYT njxQ/s0jbQLVj7C4TP/VvVaMQTDQnQ82Jck/1NrZZFH/Zj0PV8NgIIu38noRMbOD6AvO N7tw== X-Gm-Message-State: AKGB3mJrmFi02v60mNZA9bTzVv59meg4I0M2n+5ZckgVL+/XM+3CZUFA ZNgO5Zj4NLQSKbjQHYF6DXcQJA== X-Google-Smtp-Source: ACJfBosgZtWEC7sT8mozLgEhFsLcRRPWXPHAaq8s98gU4/9sn3lGW+qfNTJPUsyQg644sqVs4iRYoQ== X-Received: by 10.107.169.132 with SMTP id f4mr9953382ioj.218.1513805482008; Wed, 20 Dec 2017 13:31:22 -0800 (PST) Received: from manet.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id x87sm3075395ita.32.2017.12.20.13.31.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Dec 2017 13:31:21 -0800 (PST) Subject: [PATCH v1 08/12] xprtrdma: Add trace points to instrument MR allocation and recovery From: Chuck Lever To: anna.schumaker@netapp.com Cc: linux-rdma@vger.kernel.org, linux-nfs@vger.kernel.org Date: Wed, 20 Dec 2017 16:31:21 -0500 Message-ID: <20171220213120.29321.51753.stgit@manet.1015granger.net> In-Reply-To: <20171220210236.29321.59307.stgit@manet.1015granger.net> References: <20171220210236.29321.59307.stgit@manet.1015granger.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Chuck Lever --- include/trace/events/rpcrdma.h | 57 ++++++++++++++++++++++++++++++++++++++++ net/sunrpc/xprtrdma/verbs.c | 6 ++-- 2 files changed, 60 insertions(+), 3 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/include/trace/events/rpcrdma.h b/include/trace/events/rpcrdma.h index 057662b..d4dad18 100644 --- a/include/trace/events/rpcrdma.h +++ b/include/trace/events/rpcrdma.h @@ -50,6 +50,37 @@ ), \ TP_ARGS(rep)) +DECLARE_EVENT_CLASS(xprtrdma_rxprt, + TP_PROTO( + const struct rpcrdma_xprt *r_xprt + ), + + TP_ARGS(r_xprt), + + TP_STRUCT__entry( + __field(const void *, r_xprt) + __string(addr, rpcrdma_addrstr(r_xprt)) + __string(port, rpcrdma_portstr(r_xprt)) + ), + + TP_fast_assign( + __entry->r_xprt = r_xprt; + __assign_str(addr, rpcrdma_addrstr(r_xprt)); + __assign_str(port, rpcrdma_portstr(r_xprt)); + ), + + TP_printk("peer=[%s]:%s r_xprt=%p", + __get_str(addr), __get_str(port), __entry->r_xprt + ) +); + +#define DEFINE_RXPRT_EVENT(name) \ + DEFINE_EVENT(xprtrdma_rxprt, name, \ + TP_PROTO( \ + const struct rpcrdma_xprt *r_xprt \ + ), \ + TP_ARGS(r_xprt)) + DECLARE_EVENT_CLASS(xprtrdma_rdch_event, TP_PROTO( const struct rpc_task *task, @@ -239,6 +270,31 @@ ** Call events **/ +TRACE_EVENT(xprtrdma_createmrs, + TP_PROTO( + const struct rpcrdma_xprt *r_xprt, + unsigned int count + ), + + TP_ARGS(r_xprt, count), + + TP_STRUCT__entry( + __field(const void *, r_xprt) + __field(unsigned int, count) + ), + + TP_fast_assign( + __entry->r_xprt = r_xprt; + __entry->count = count; + ), + + TP_printk("r_xprt=%p: created %u MRs", + __entry->r_xprt, __entry->count + ) +); + +DEFINE_RXPRT_EVENT(xprtrdma_nomrs); + DEFINE_RDCH_EVENT(xprtrdma_read_chunk); DEFINE_WRCH_EVENT(xprtrdma_write_chunk); DEFINE_WRCH_EVENT(xprtrdma_reply_chunk); @@ -422,6 +478,7 @@ DEFINE_MR_EVENT(xprtrdma_localinv); DEFINE_MR_EVENT(xprtrdma_dma_unmap); DEFINE_MR_EVENT(xprtrdma_remoteinv); +DEFINE_MR_EVENT(xprtrdma_recover_mr); /** ** Reply events diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c index 0e89e55..1addcc9 100644 --- a/net/sunrpc/xprtrdma/verbs.c +++ b/net/sunrpc/xprtrdma/verbs.c @@ -998,7 +998,7 @@ void rpcrdma_sendctx_put_locked(struct rpcrdma_sendctx *sc) mr = rpcrdma_mr_pop(&buf->rb_stale_mrs); spin_unlock(&buf->rb_recovery_lock); - dprintk("RPC: %s: recovering MR %p\n", __func__, mr); + trace_xprtrdma_recover_mr(mr); mr->mr_xprt->rx_ia.ri_ops->ro_recover_mr(mr); spin_lock(&buf->rb_recovery_lock); @@ -1054,7 +1054,7 @@ void rpcrdma_sendctx_put_locked(struct rpcrdma_sendctx *sc) r_xprt->rx_stats.mrs_allocated += count; spin_unlock(&buf->rb_mrlock); - dprintk("RPC: %s: created %u MRs\n", __func__, count); + trace_xprtrdma_createmrs(r_xprt, count); } static void @@ -1310,7 +1310,7 @@ struct rpcrdma_mr * return mr; out_nomrs: - dprintk("RPC: %s: no MRs available\n", __func__); + trace_xprtrdma_nomrs(r_xprt); if (r_xprt->rx_ep.rep_connected != -ENODEV) schedule_delayed_work(&buf->rb_refresh_worker, 0);