From patchwork Wed Sep 16 21:42:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781045 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 74A8D618 for ; Wed, 16 Sep 2020 22:18:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 546C320732 for ; Wed, 16 Sep 2020 22:18:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y5y5f1MZ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726458AbgIPWSU (ORCPT ); Wed, 16 Sep 2020 18:18:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726455AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from mail-il1-x141.google.com (mail-il1-x141.google.com [IPv6:2607:f8b0:4864:20::141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7024CC061A10 for ; Wed, 16 Sep 2020 14:42:20 -0700 (PDT) Received: by mail-il1-x141.google.com with SMTP id a8so297352ilk.1 for ; Wed, 16 Sep 2020 14:42:20 -0700 (PDT) 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=kbXsUBt09cO6S84jCCgTWGA9qVP9dLo1c/YsszdIKf4=; b=Y5y5f1MZ1RDgx+dt520O1nkINm4GzQ9iRYj7fR8rKugaGAg5TDf84C+8ZC0kaCBbjv Qmsh/DHHH6eE5b3KGGu4STC/coVTmhod04cdicWbN6thE5XJADRhsVaGRGB65GodWD2z kYMd97E9LpZaALkQKN+bYg34sRBDZbSs1VwrogdLe9eBcwMb/lm3nLrvIldCPUrMPAgh eeupbVGWWIs15d0t9feJe5qb3T6G5S0OoRFzpRlCvkJfDUDWjsSwHsqQHvaY/B7Yl2mz USmPUYU0Occ89f+CjQ2K2IsjN5ciGm8cuRBCAttAuVWtsYW69ixZiofEsVriTFRDfXns WRjA== 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=kbXsUBt09cO6S84jCCgTWGA9qVP9dLo1c/YsszdIKf4=; b=A6IRncr+7s+LE2MSinonIoyD8ftp0KMPCFU2zuN/+IMKiBYrCjtBdBJX5voySLH0XM /SwFUqp6Mb9UBXqSH1AYzgyL/SEaCthraqjqkRzAAhr35Oe9yCaa9BKqkeIZz51bL/Ye nmAw07JeWaXgMbSBCuGXzXi0oUBRE2vbytkwXIBBgO4/kn0QBQVCStPWePEQgLQOXB/y tW0ez8ezh20wFt664hJVOfi2kmpUfg2hxeDEMr6u82vd8utbRGpJ8OUHAg9YKMt/Mc4O 7aqrrtZ6RUqnWCnpxhh4LXkCQY+2ugCN6CowHkxfXjtg92TX/F83gVc5AfyTVSLsFPGh lYVQ== X-Gm-Message-State: AOAM531LwypNzlgcqPtTNv74NGer/evBb1QTDJUZUAXPUEu2enliD0LN Tm8qwPNj//4MP09TIK/z/EICWaYG8Bk= X-Google-Smtp-Source: ABdhPJwvN16aFaW7WnC7fGbSZ0gqp5lSKVBnaH/RO7EXSscZ4rQ4V9AOjVvJDpEHj4rjG0oAL1pc6Q== X-Received: by 2002:a92:d605:: with SMTP id w5mr19532167ilm.12.1600292539840; Wed, 16 Sep 2020 14:42:19 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id r7sm11619944ilg.27.2020.09.16.14.42.18 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:19 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgIw1022981; Wed, 16 Sep 2020 21:42:18 GMT Subject: [PATCH RFC 01/21] NFSD: Add SPDK header for fs/nfsd/trace.c From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:18 -0400 Message-ID: <160029253817.29208.3156039915028547893.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Clean up. The file was contributed in 2014 by Christoph Helwig in commit 31ef83dc0538 ("nfsd: add trace events"). Signed-off-by: Chuck Lever --- fs/nfsd/trace.c | 1 + 1 file changed, 1 insertion(+) diff --git a/fs/nfsd/trace.c b/fs/nfsd/trace.c index 90967466a1e5..f008b95ceec2 100644 --- a/fs/nfsd/trace.c +++ b/fs/nfsd/trace.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0 #define CREATE_TRACE_POINTS #include "trace.h" From patchwork Wed Sep 16 21:42:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781051 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 286A0139F for ; Wed, 16 Sep 2020 22:18:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 068D02080C for ; Wed, 16 Sep 2020 22:18:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Tix2bEKS" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726441AbgIPWSX (ORCPT ); Wed, 16 Sep 2020 18:18:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726436AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2356C061A28 for ; Wed, 16 Sep 2020 14:42:26 -0700 (PDT) Received: by mail-il1-x142.google.com with SMTP id y9so293913ilq.2 for ; Wed, 16 Sep 2020 14:42:26 -0700 (PDT) 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=eZsJrS5RIkpBLpJ5cvtnOC7i1FNw4orc+FZSFyzk3fU=; b=Tix2bEKSbJ6oblpHOsPuvYoSJU/1Sl7n4BeI7p2nf0AwljfTwMXWdHqf+iqED259NJ q4TU3OAQdSfAt/5arc+3Oaspd10co1JO0oH9rf2knmvlAHZKa7JOU35JFICZR4DYKTwG c0Ax5I1C4kroJ04QJvwr6xbhgricW8M50NPk67APgDZxahCunH8+LkWKIJP2ynhbFDpl QSUrbeRA0ibmELWZ9BM6j7MB0A/ApGAR3jvHJwu7fpuisst7z0m9il4M/XA+RpnM3Nsw LWhbJ8PRE0ojtWUnGoDSNSjVUX5w+aJ37yiJdrS89YbI9YMNaPHSOzZiSzrN7gMnow/h dPwA== 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=eZsJrS5RIkpBLpJ5cvtnOC7i1FNw4orc+FZSFyzk3fU=; b=BdaHQX7r+CZRH1Blu6f2ZXBe+VEVI9Y/JX+wmBSkQZKQPdeR8Is4O7OR6aovt3nO4F zwn+l13pfy2Yi4ItbrFQDgmCKwO+C6q3SC9ONoZoCeHmrPo3IGmn1UJUYIgIqIrR7r0z rubyOvPqrfUU5J2Cas5ZkdqWOkhO/KyB0vZvqxwpr1yEUjPc9cawy8dgMqsO/fixluOK pmOf4qfaARSupjfZW+rWDuxMyZqdw6IZJCpy37ZmA+TAI9HeBLscwNDhFa9r6XgPUpHe b7F1hdJVVbYlPxbBOEyEEqLY3bTZ5ArMxrRbcl1+eyYy2jWNcbGCV19zvVf3RqhH7XAC 9gqQ== X-Gm-Message-State: AOAM532J7SopPYm1o99HR8tqrYF4ZbX8dRF7GSC+w2CEP+PNrBkjMZ2d DLDuoLEqASPmax8EH7lFPmRq6Rpe9kc= X-Google-Smtp-Source: ABdhPJxDkdg1vaUkje/n2XgoRjjvAIMKvvz6p4Pp4ihJ8drr7COMDkgUbn+ufwcaK26IACEJjlUGjw== X-Received: by 2002:a92:c847:: with SMTP id b7mr10373381ilq.35.1600292545246; Wed, 16 Sep 2020 14:42:25 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id o8sm11807154ilb.64.2020.09.16.14.42.24 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:24 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgNBm022984; Wed, 16 Sep 2020 21:42:23 GMT Subject: [PATCH RFC 02/21] SUNRPC: Move the svc_xdr_recvfrom() tracepoint From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:23 -0400 Message-ID: <160029254350.29208.3186375071514902812.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Commit c509f15a5801 ("SUNRPC: Split the xdr_buf event class") added display of the rqst's XID to the svc_xdr_buf_class. However, when the recvfrom tracepoint fires, rq_xid has yet to be filled in with the current XID. So it ends up recording the last XID that was handled by that svc_rqst. Signed-off-by: Chuck Lever --- include/trace/events/sunrpc.h | 24 ------------------------ net/sunrpc/svc_xprt.c | 4 +--- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index 65d7dfbbc9cd..6afd39572dcd 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h @@ -1279,30 +1279,6 @@ SVC_RQST_FLAG_LIST #define show_rqstp_flags(flags) \ __print_flags(flags, "|", SVC_RQST_FLAG_LIST) -TRACE_EVENT(svc_recv, - TP_PROTO(struct svc_rqst *rqst, int len), - - TP_ARGS(rqst, len), - - TP_STRUCT__entry( - __field(u32, xid) - __field(int, len) - __field(unsigned long, flags) - __string(addr, rqst->rq_xprt->xpt_remotebuf) - ), - - TP_fast_assign( - __entry->xid = be32_to_cpu(rqst->rq_xid); - __entry->len = len; - __entry->flags = rqst->rq_flags; - __assign_str(addr, rqst->rq_xprt->xpt_remotebuf); - ), - - TP_printk("addr=%s xid=0x%08x len=%d flags=%s", - __get_str(addr), __entry->xid, __entry->len, - show_rqstp_flags(__entry->flags)) -); - TRACE_DEFINE_ENUM(SVC_GARBAGE); TRACE_DEFINE_ENUM(SVC_SYSERR); TRACE_DEFINE_ENUM(SVC_VALID); diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index 43cf8dbde898..5fb9164aa690 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c @@ -813,8 +813,6 @@ static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt) len = svc_deferred_recv(rqstp); else len = xprt->xpt_ops->xpo_recvfrom(rqstp); - if (len > 0) - trace_svc_xdr_recvfrom(rqstp, &rqstp->rq_arg); rqstp->rq_stime = ktime_get(); rqstp->rq_reserved = serv->sv_max_mesg; atomic_add(rqstp->rq_reserved, &xprt->xpt_reserved); @@ -868,7 +866,7 @@ int svc_recv(struct svc_rqst *rqstp, long timeout) if (serv->sv_stats) serv->sv_stats->netcnt++; - trace_svc_recv(rqstp, len); + trace_svc_xdr_recvfrom(rqstp, &rqstp->rq_arg); return len; out_release: rqstp->rq_res.len = 0; From patchwork Wed Sep 16 21:42:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781041 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4217959D for ; Wed, 16 Sep 2020 22:18:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1C51520732 for ; Wed, 16 Sep 2020 22:18:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BxcfdXKB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726301AbgIPWSR (ORCPT ); Wed, 16 Sep 2020 18:18:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726469AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BFAAC061A29 for ; Wed, 16 Sep 2020 14:42:31 -0700 (PDT) Received: by mail-io1-xd42.google.com with SMTP id d190so10030051iof.3 for ; Wed, 16 Sep 2020 14:42:31 -0700 (PDT) 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=nbMji9Jr8UAjnYXhxZ2mcTj1y0ZyQ51gRW4PH2vF5fU=; b=BxcfdXKBMuQCcYAm6vWbU4TCrwJq7hWNQvl2vFxgDyoGubb0qHUKSDC2ZFVMTgag00 I/9SirgI3lJyHKB3xskyIUR1Y8Tisc1DAzB+9aORY1+XmlWCYZs5ay7bGix/vOSPTMpW JJuGWQuBkJn5cJVFrcuUVbgMVzeZ9R4CuISKl9bK+kjX966I4N6O9HxCohTgvr25A+68 j0WnngIgjhfr8hqFRxgso/dNSaqGfkY5qfe4JcSuYP88dewijJrA42wYGUcQ3AZ2GYl4 z1UGS16mOf+I/dp6XMvEumnyTAmvYliJykifDsLrPry/Fn80cwjKsszArh1TQiL71dET +hTw== 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=nbMji9Jr8UAjnYXhxZ2mcTj1y0ZyQ51gRW4PH2vF5fU=; b=AEOlpzSdEkDL3b9naa1wX1PjSkifP/4gvDu5KcqTWo8FzY1xwCva/I+VWuQ46uqman G7yASxxSAs5hkKURExlifGrvbdrWvNrmsJ3lba0nR93EGQcTtcmIWXS0z5QtNWW4SzOA aBk+asUdaoivD2dXp4YIXDqB1o6obUKd6aI+EJUFIHcGUyEMomo7HfrtJyfNN1oufEcE BM3WxoFDz6Nx3s/rTMlcaOYPRFJhM1rpzw8KYk8L+7ejpZdQk3XnbiaSR5VG3Ib4sHQb I3kn3mFfWBc0fnPqvV51z2P4ZU62cSSp94DKthDoxfAUK2NBYgzCmjpZZmfv2dMRDZDT g/hQ== X-Gm-Message-State: AOAM530zAq7IS/njNOEK9vB4mfiGAMfbgaizhzrHj7BoHepZT5AEQM0P WPAblT3zNSXVNjuhXtzcHis= X-Google-Smtp-Source: ABdhPJwOkT4N1g/fDJae5C6jnuMiV62jHkQpP9l6bX1xlngcW/SLHTRom6Yi+FvWCEXEPVpqjuZ1HA== X-Received: by 2002:a02:5d01:: with SMTP id w1mr23678263jaa.81.1600292550463; Wed, 16 Sep 2020 14:42:30 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id v20sm11348026ile.42.2020.09.16.14.42.29 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:29 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgS4a022987; Wed, 16 Sep 2020 21:42:28 GMT Subject: [PATCH RFC 03/21] SUNRPC: Add svc_xdr_authenticate tracepoint From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:28 -0400 Message-ID: <160029254880.29208.1225935635296520095.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Enable examination of the incoming RPC Call buffer _after_ it has been unwrapped to help troubleshoot problems with the GSS unwrap functions. Signed-off-by: Chuck Lever --- include/trace/events/sunrpc.h | 1 + net/sunrpc/svcauth.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index 6afd39572dcd..aac12f45bfb0 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h @@ -1249,6 +1249,7 @@ DECLARE_EVENT_CLASS(svc_xdr_buf_class, DEFINE_SVCXDRBUF_EVENT(recvfrom); DEFINE_SVCXDRBUF_EVENT(sendto); +DEFINE_SVCXDRBUF_EVENT(authenticate); /* * from include/linux/sunrpc/svc.h diff --git a/net/sunrpc/svcauth.c b/net/sunrpc/svcauth.c index 998b196b6176..593df315b111 100644 --- a/net/sunrpc/svcauth.c +++ b/net/sunrpc/svcauth.c @@ -63,6 +63,7 @@ svc_authenticate(struct svc_rqst *rqstp, __be32 *authp) { rpc_authflavor_t flavor; struct auth_ops *aops; + int ret; *authp = rpc_auth_ok; @@ -80,7 +81,9 @@ svc_authenticate(struct svc_rqst *rqstp, __be32 *authp) init_svc_cred(&rqstp->rq_cred); rqstp->rq_authop = aops; - return aops->accept(rqstp, authp); + ret = aops->accept(rqstp, authp); + trace_svc_xdr_authenticate(rqstp, &rqstp->rq_arg); + return ret; } EXPORT_SYMBOL_GPL(svc_authenticate); From patchwork Wed Sep 16 21:42:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781049 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3435618 for ; Wed, 16 Sep 2020 22:18:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B2CB720708 for ; Wed, 16 Sep 2020 22:18:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="uFC45fti" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726419AbgIPWSW (ORCPT ); Wed, 16 Sep 2020 18:18:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726441AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66677C061A2A for ; Wed, 16 Sep 2020 14:42:36 -0700 (PDT) Received: by mail-io1-xd43.google.com with SMTP id g7so9964844iov.13 for ; Wed, 16 Sep 2020 14:42:36 -0700 (PDT) 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=GX8blvT22n2flPRieLsZA2945QuhO1WonegzvfRPWcE=; b=uFC45ftiAg3Vf7nmSSJK0F6l/d6wIkwmudumh/AYw1RaKQ7ev/HhuqaGiLnVJcU9wK lelXphsfHpWO5q191QMxviv9grovykVWBBUIAwc6vPVIO5d00Ry7rp9dWRPXy9vIWJbF M1pznFiTb5QGlHhBLAq08o8sbhN1aXHry49hh8FCgQChyAlPNdrHCuscbHyHiMxciMSn RD+LyhrE6fa3XoNYjJcVG90RoxI5Yo/OZvcx5Syj8DBM47YLv0AqhevCH81Nf7STD5s6 34i8M+SzudUDcTqe9lIp2Y/Q9w+DzuVYsCxmbKMj+Vu8S7JRdXE0nGKdnxDBku3it0lP 3MSw== 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=GX8blvT22n2flPRieLsZA2945QuhO1WonegzvfRPWcE=; b=ea0pJJYQ3ZXMzmUUMx4dQrntJrQJTeNpQNxKX1vAX6sWydQP9kfJUbWRb3VufBqLLC jjNGBl/IEfXCjVCt+l59F2W7094FBAR/FwVuuZC4JWcbNFiqzpqfMGN2zDvD5wCOhM7W L8XbiJitRD7kIfUDatHUetiKYXqVozZSDB2e6GOdW6lMhY3y/HZpJV8mSqfpn/qUHfkc XVtT8CTZaFPQ/21MZZgGQRRwNgf8SenCbi28yKVkohfVkBrTSs2UAtTFj9evuA8L1DC9 2zRdyzYxEl4ikEd3uvU0yabM8ZwwTStYHbynodFMvv2bvMTb26wYygn4PmmjqXDZxqxl iicA== X-Gm-Message-State: AOAM533AWSeVRNG60/30cWCcKZp9AAQ572KcewF2uwfS2775lxlV8aF3 Rf0Jg9kqf8i86tALtG/LYCM= X-Google-Smtp-Source: ABdhPJxZ61TJmVe6Ch7nGdOrCX83txGzTr0GKrGp4DN+LlWctsYW+w2bTEi7jpmtAMvbUPRmLxWRig== X-Received: by 2002:a05:6602:22cf:: with SMTP id e15mr20713403ioe.114.1600292555769; Wed, 16 Sep 2020 14:42:35 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id i144sm9629121ioa.55.2020.09.16.14.42.34 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:35 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgYOT022990; Wed, 16 Sep 2020 21:42:34 GMT Subject: [PATCH RFC 04/21] NFSD: Clean up the show_nf_may macro From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:34 -0400 Message-ID: <160029255410.29208.10420863210576888477.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Display all possible NFSD_MAY permission flags. Rename show_nf_may with a more generic name because the NFSD_MAY permission flags are used in other places besides the file cache. Signed-off-by: Chuck Lever --- fs/nfsd/trace.h | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 1861db1bdc67..a8013338f4d5 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -12,6 +12,38 @@ #include "export.h" #include "nfsfh.h" +/* + * from fs/nfsd/vfs.h + */ +#define NFSD_PERMISSION_LIST \ + nfsd_perm_flag(EXEC) \ + nfsd_perm_flag(WRITE) \ + nfsd_perm_flag(READ) \ + nfsd_perm_flag(SATTR) \ + nfsd_perm_flag(TRUNC) \ + nfsd_perm_flag(LOCK) \ + nfsd_perm_flag(OWNER_OVERRIDE) \ + nfsd_perm_flag(LOCAL_ACCESS) \ + nfsd_perm_flag(BYPASS_GSS_ON_ROOT) \ + nfsd_perm_flag(NOT_BREAK_LEASE) \ + nfsd_perm_flag(BYPASS_GSS) \ + nfsd_perm_flag(READ_IF_EXEC) \ + nfsd_perm_flag_end(64BIT_COOKIE) + +#undef nfsd_perm_flag +#undef nfsd_perm_flag_end +#define nfsd_perm_flag(x) TRACE_DEFINE_ENUM(NFSD_MAY_##x); +#define nfsd_perm_flag_end(x) TRACE_DEFINE_ENUM(NFSD_MAY_##x); + +NFSD_PERMISSION_LIST + +#undef nfsd_perm_flag +#undef nfsd_perm_flag_end +#define nfsd_perm_flag(x) { NFSD_MAY_##x, #x }, +#define nfsd_perm_flag_end(x) { NFSD_MAY_##x, #x } + +#define show_perm_flags(val) __print_flags(val, "|", NFSD_PERMISSION_LIST) + TRACE_EVENT(nfsd_compound, TP_PROTO(const struct svc_rqst *rqst, u32 args_opcnt), @@ -421,6 +453,9 @@ TRACE_EVENT(nfsd_clid_inuse_err, __entry->cl_boot, __entry->cl_id) ) +/* + * from fs/nfsd/filecache.h + */ TRACE_DEFINE_ENUM(NFSD_FILE_HASHED); TRACE_DEFINE_ENUM(NFSD_FILE_PENDING); TRACE_DEFINE_ENUM(NFSD_FILE_BREAK_READ); @@ -435,13 +470,6 @@ TRACE_DEFINE_ENUM(NFSD_FILE_REFERENCED); { 1 << NFSD_FILE_BREAK_WRITE, "BREAK_WRITE" }, \ { 1 << NFSD_FILE_REFERENCED, "REFERENCED"}) -/* FIXME: This should probably be fleshed out in the future. */ -#define show_nf_may(val) \ - __print_flags(val, "|", \ - { NFSD_MAY_READ, "READ" }, \ - { NFSD_MAY_WRITE, "WRITE" }, \ - { NFSD_MAY_NOT_BREAK_LEASE, "NOT_BREAK_LEASE" }) - DECLARE_EVENT_CLASS(nfsd_file_class, TP_PROTO(struct nfsd_file *nf), TP_ARGS(nf), @@ -466,7 +494,7 @@ DECLARE_EVENT_CLASS(nfsd_file_class, __entry->nf_inode, __entry->nf_ref, show_nf_flags(__entry->nf_flags), - show_nf_may(__entry->nf_may), + show_perm_flags(__entry->nf_may), __entry->nf_file) ) @@ -492,10 +520,10 @@ TRACE_EVENT(nfsd_file_acquire, __field(u32, xid) __field(unsigned int, hash) __field(void *, inode) - __field(unsigned int, may_flags) + __field(unsigned long, may_flags) __field(int, nf_ref) __field(unsigned long, nf_flags) - __field(unsigned char, nf_may) + __field(unsigned long, nf_may) __field(struct file *, nf_file) __field(u32, status) ), @@ -514,9 +542,9 @@ TRACE_EVENT(nfsd_file_acquire, TP_printk("xid=0x%x hash=0x%x inode=0x%p may_flags=%s ref=%d nf_flags=%s nf_may=%s nf_file=0x%p status=%u", __entry->xid, __entry->hash, __entry->inode, - show_nf_may(__entry->may_flags), __entry->nf_ref, + show_perm_flags(__entry->may_flags), __entry->nf_ref, show_nf_flags(__entry->nf_flags), - show_nf_may(__entry->nf_may), __entry->nf_file, + show_perm_flags(__entry->nf_may), __entry->nf_file, __entry->status) ); From patchwork Wed Sep 16 21:42:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781043 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C7912618 for ; Wed, 16 Sep 2020 22:18:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A056F20732 for ; Wed, 16 Sep 2020 22:18:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="co7CwOLv" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726304AbgIPWSS (ORCPT ); Wed, 16 Sep 2020 18:18:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726460AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from mail-io1-xd43.google.com (mail-io1-xd43.google.com [IPv6:2607:f8b0:4864:20::d43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A041DC061A2B for ; Wed, 16 Sep 2020 14:42:41 -0700 (PDT) Received: by mail-io1-xd43.google.com with SMTP id r25so10071162ioj.0 for ; Wed, 16 Sep 2020 14:42:41 -0700 (PDT) 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=HDeNnwztZp9r/rjnWz7OXENZ8taHfYg/t80rlob2uME=; b=co7CwOLvYFnTADyxJtt00pymDpStyTFlksYlMVSI0gBdXcHKBHuetezOciWUJo5vQc iB0PfnRCjdiDLQTXlrHF+MKApCFf4dfZ9eYLCU69OhFdJw1Uw5VxMCRXwRwC2vOdNh1c rn7jreE+G0fsaFUKKuYJ4N/RQr21j6K8aIRjlgPlRyAI8SzL6GJRuYK0JdQE15IHQGf7 MiQK/yMZGQPx7q4esT6MrrLElzEfIxU4YcT1HUKK4EmJf5VlwNljMJV+sKc6kP0aweTw +epGpSnA6PkYWCBLWENHARCi2sBZtpMxgni6Ad7T31b16gUX9Wmsa/Egg/P4NeCeWvPz dnCg== 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=HDeNnwztZp9r/rjnWz7OXENZ8taHfYg/t80rlob2uME=; b=pKLCRjd4xFBjI+3JkvZvYszpZREiMz5opS2kXwvu3cmpiba7/O4kt916UhylnEGyNo GusH3Vh4wFAm5ffj333yhE/D2b+kePCbY0WAHX/+riPAIezy+dsQgEp1KqL6Vi9ymuWA U91Efcp8O0tTDcPlhI4h/7aoc5jv3FZnoipGG36AFpNPoZuLJMEUXacVGTGOEplT+QCN RRv3FJs6ZyZUjCWcQLRSoEqoUEtui3gDUsk4VOaA+3PVRCQof4kVumusj2pA0YaCAOgs vKCMWfUR7xeMjRRup05LoviDXlQ108U+cNVspdAsL1nOh9z6Ne+UpfcOF1DC7CqmMaxa HXPQ== X-Gm-Message-State: AOAM531KU6K0d2oPw+xLvAToLZDcsE2OXA4y8tR9CD1W1/XAidaYPMzJ FdNiZQutIsWKR7SvQQ5iohw= X-Google-Smtp-Source: ABdhPJzCY4TTyA+nbS4jQS2SCwhodi76lxamatUAWUljfpCi7eq4nGlVMvhytyhYNLugdmQx82CndQ== X-Received: by 2002:a5e:881a:: with SMTP id l26mr20459887ioj.51.1600292561003; Wed, 16 Sep 2020 14:42:41 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id z72sm9817121iof.29.2020.09.16.14.42.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:40 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgdqj022993; Wed, 16 Sep 2020 21:42:39 GMT Subject: [PATCH RFC 05/21] NFSD: Remove extra "0x" in tracepoint format specifier From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:39 -0400 Message-ID: <160029255940.29208.17173639745971967172.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Clean up: %p adds its own 0x already. Signed-off-by: Chuck Lever --- fs/nfsd/trace.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index a8013338f4d5..2ed632d36640 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -489,7 +489,7 @@ DECLARE_EVENT_CLASS(nfsd_file_class, __entry->nf_may = nf->nf_may; __entry->nf_file = nf->nf_file; ), - TP_printk("hash=0x%x inode=0x%p ref=%d flags=%s may=%s file=%p", + TP_printk("hash=0x%x inode=%p ref=%d flags=%s may=%s file=%p", __entry->nf_hashval, __entry->nf_inode, __entry->nf_ref, @@ -540,7 +540,7 @@ TRACE_EVENT(nfsd_file_acquire, __entry->status = be32_to_cpu(status); ), - TP_printk("xid=0x%x hash=0x%x inode=0x%p may_flags=%s ref=%d nf_flags=%s nf_may=%s nf_file=0x%p status=%u", + TP_printk("xid=0x%x hash=0x%x inode=%p may_flags=%s ref=%d nf_flags=%s nf_may=%s nf_file=%p status=%u", __entry->xid, __entry->hash, __entry->inode, show_perm_flags(__entry->may_flags), __entry->nf_ref, show_nf_flags(__entry->nf_flags), @@ -561,7 +561,7 @@ DECLARE_EVENT_CLASS(nfsd_file_search_class, __entry->hash = hash; __entry->found = found; ), - TP_printk("hash=0x%x inode=0x%p found=%d", __entry->hash, + TP_printk("hash=0x%x inode=%p found=%d", __entry->hash, __entry->inode, __entry->found) ); @@ -589,7 +589,7 @@ TRACE_EVENT(nfsd_file_fsnotify_handle_event, __entry->mode = inode->i_mode; __entry->mask = mask; ), - TP_printk("inode=0x%p nlink=%u mode=0%ho mask=0x%x", __entry->inode, + TP_printk("inode=%p nlink=%u mode=0%ho mask=0x%x", __entry->inode, __entry->nlink, __entry->mode, __entry->mask) ); From patchwork Wed Sep 16 21:42:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781047 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 12EFA59D for ; Wed, 16 Sep 2020 22:18:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EBCAB20732 for ; Wed, 16 Sep 2020 22:18:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MSu4GEWA" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726455AbgIPWSV (ORCPT ); Wed, 16 Sep 2020 18:18:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726444AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05C53C061A2D for ; Wed, 16 Sep 2020 14:42:48 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id a8so298437ilk.1 for ; Wed, 16 Sep 2020 14:42:47 -0700 (PDT) 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=bz731S6wZQA+1qpFznGE8eQlmK/fBClUt6HbiD7bfaQ=; b=MSu4GEWAvVsiY0wxg9FIYGP/KaWb43SMshTTHFSakZENiuyB6gWKuFi1twj3Th/cSp t6kJikL1Cu3ehZtcIxYwDbMb1iwMqRhgJcBdCNDV1nnFrz4+Lat53mq6sYxNQ9ErVEPG 8VJA/cZAqRDJJxMZfKXU3RKN+IWawB6tTblJ9SJpFWCaqu3O9fVVx6ptlsNzJTcNqi5l JO8m4+9pf61km/BziP8+DfmZFLnRxzpCQpzEJFTAlrG36mPLPAFa7c3gTWfo+7mYMgOE VtEeuzxahoKi6OQl+W1TJG7qSRGmMNQVFabzGVw9CBKWwMNJ6v9xrbgCiEzF6GY/4gJn 26bw== 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=bz731S6wZQA+1qpFznGE8eQlmK/fBClUt6HbiD7bfaQ=; b=WwGMZ1m4O9roGfd07GXAB+qIBW0P2BsSJa8onGZ3nAP0dMayEJtXiFjamqXNGMBT/9 pPbN+8MEif4fJR5wgsRTKR1WCAJTPbTN+W+hBde3c/O1JFJt3pSyQHUo2RD77Dxdal5F FsogzsATv2SaieR4JjOeg7n2nvyx5kpMtpxJX96WCptni1JuRzb0IbE6iTaWIscO01mZ OSLERi0kTQnY2Gtw3i5tX0ejxT6UVdcICSj/Deuc8kb0wbl9OF+j9ATs95kyo3/spL9p cwIwfJSSoOu038b0wYm06pbfKVTT7UTNGTFRu5fDSvBopDjyW9Kp72dnRhVuQiCOECK1 CrhQ== X-Gm-Message-State: AOAM5300WB+HorhF0SW8bVobprjKda0VziExA5Ct+peX4WTwpvYxtmlg w+FKnScJFsW6u8N5gO6WR/s= X-Google-Smtp-Source: ABdhPJx7biM1+qbPHXeAL5HqSUKghKqFTun1p1ci9kTqYkbhmzp8EIkREKZ2Om3umQzwOGBmtKuXJg== X-Received: by 2002:a92:c7a2:: with SMTP id f2mr3558811ilk.171.1600292566182; Wed, 16 Sep 2020 14:42:46 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id s23sm9776897iol.23.2020.09.16.14.42.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:45 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgiYl022996; Wed, 16 Sep 2020 21:42:44 GMT Subject: [PATCH RFC 06/21] NFSD: Constify @fh argument of knfsd_fh_hash() From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:44 -0400 Message-ID: <160029256470.29208.12060672647527057465.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Refactor: Enable knfsd_fh_hash() to be invoked in functions where the FH is const. Signed-off-by: Chuck Lever --- fs/nfsd/nfsfh.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/fs/nfsd/nfsfh.h b/fs/nfsd/nfsfh.h index 56cfbc361561..1a2e28369d04 100644 --- a/fs/nfsd/nfsfh.h +++ b/fs/nfsd/nfsfh.h @@ -219,15 +219,12 @@ static inline bool fh_fsid_match(struct knfsd_fh *fh1, struct knfsd_fh *fh2) * returns a crc32 hash for the filehandle that is compatible with * the one displayed by "wireshark". */ - -static inline u32 -knfsd_fh_hash(struct knfsd_fh *fh) +static inline u32 knfsd_fh_hash(const struct knfsd_fh *fh) { return ~crc32_le(0xFFFFFFFF, (unsigned char *)&fh->fh_base, fh->fh_size); } #else -static inline u32 -knfsd_fh_hash(struct knfsd_fh *fh) +static inline u32 knfsd_fh_hash(const struct knfsd_fh *fh) { return 0; } From patchwork Wed Sep 16 21:42:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781039 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B9F19618 for ; Wed, 16 Sep 2020 22:18:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8F7E220732 for ; Wed, 16 Sep 2020 22:18:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EAu3LBNp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726541AbgIPWR5 (ORCPT ); Wed, 16 Sep 2020 18:17:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49524 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726422AbgIPWR4 (ORCPT ); Wed, 16 Sep 2020 18:17:56 -0400 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0DA84C061A2E for ; Wed, 16 Sep 2020 14:42:52 -0700 (PDT) Received: by mail-io1-xd41.google.com with SMTP id d190so10031025iof.3 for ; Wed, 16 Sep 2020 14:42:52 -0700 (PDT) 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=25pBL4LKQ8q1DweXXb8lo+1GSGfI3ts0e7EUEMUNcJE=; b=EAu3LBNpaS74BLEykCl6jHWHZkdCH5Akb+UTFFu4w0ZqoO3ibH8thBagLpl/OB0fGv EtS1FXM41eg9XMs/FuVdNMBxiVMB0nd5mdYo4llsENijfQdJOO2ia6QiwVO4Mut0EFiU Yg7OU/a4xprqeB4ey3Q1OudIMQEQVEMYRXPQVfXDwZKlGxSbgiEXW+5uq3BkjRkqY9yD 3csVS60t0cqOY9uUjZvtR9FAhbSPjo2WEwd/+ntu4eiZazfIKxT9w8r6MvWJ1E2FzmxF rdvvaGOOMPFst/z8LSggi4wMtwZoIIWZ2EOo6cUdghXngD+hvpgPChrgS5dm2jF0Ioy4 +SCQ== 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=25pBL4LKQ8q1DweXXb8lo+1GSGfI3ts0e7EUEMUNcJE=; b=tnPuq17Rk9fVcwQzkpmAe/UPvoP2I679XnxbcyR/eV2IHyE7OjHnlkCbWt4kb6bCJW zbR0akXZb7lX8tGMCXrUHQ57mHbdLGzvPKLl111mO+qxMlVRrmK9Q1yK4Th+bioigiIz 57PzcV4/EOEtrv+fhMWEUPv9MhplN0dpi+uEDPX3zoiQP6L8i3Dm26yzuVYKWpAaM1o9 ZLha4ZaJzRjDAigE4Hc/MsVhgVNieeWlowfzXBpuQwIIH3d+6OXhY3a6Q/9HMc5jBr+O Vt7mkyufXuP5Yf5f+uuXZNy7KsSJROVKA0mDoexAeJwDFsa9Dw4g7DunY4BN57Z0l3Cr xrCA== X-Gm-Message-State: AOAM532HfKhNsTRknu376KRcILANU9+VZHTHBbFFDrhmdsIMhZty5uv6 5i3sNMD0oxouVvnhgMUkxHU= X-Google-Smtp-Source: ABdhPJyazCIzIN8SkO0z0as1L3IRkRGCxBpyHhENnDyzD8YoOEMx2GmydXXkexIUIKJrKmrCYkXwZg== X-Received: by 2002:a02:1142:: with SMTP id 63mr24210637jaf.73.1600292571355; Wed, 16 Sep 2020 14:42:51 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id j77sm3921934ili.31.2020.09.16.14.42.50 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:50 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgnLm022999; Wed, 16 Sep 2020 21:42:49 GMT Subject: [PATCH RFC 07/21] NFSD: Add tracepoint in nfsd_setattr() From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:49 -0400 Message-ID: <160029256978.29208.2271307698611376056.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Capture especially the XID, file handle, and attr mask for troubleshooting. So for example: nfsd-1025 [002] 256.807363: nfsd_setattr: xid=0x12147d7a fh_hash=0x6085d6fb valid=MODE|ATIME|MTIME Signed-off-by: Chuck Lever --- fs/nfsd/trace.h | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/vfs.c | 2 + 2 files changed, 83 insertions(+) diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 2ed632d36640..77b7e8a45776 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -12,6 +12,64 @@ #include "export.h" #include "nfsfh.h" +/* + * from include/linux/fs.h + */ +#define ATTR_VALID_LIST \ + attr_valid_list(MODE) \ + attr_valid_list(UID) \ + attr_valid_list(GID) \ + attr_valid_list(SIZE) \ + attr_valid_list(ATIME) \ + attr_valid_list(MTIME) \ + attr_valid_list(CTIME) \ + attr_valid_list(ATIME_SET) \ + attr_valid_list(MTIME_SET) \ + attr_valid_list(FORCE) \ + attr_valid_list(KILL_SUID) \ + attr_valid_list(KILL_SGID) \ + attr_valid_list(FILE) \ + attr_valid_list(KILL_PRIV) \ + attr_valid_list(OPEN) \ + attr_valid_list(TIMES_SET) \ + attr_valid_list_end(TOUCH) + +#undef attr_valid_list +#undef attr_valid_list_end +#define attr_valid_list(x) TRACE_DEFINE_ENUM(ATTR_##x); +#define attr_valid_list_end(x) TRACE_DEFINE_ENUM(ATTR_##x); + +ATTR_VALID_LIST + +#undef attr_valid_list +#undef attr_valid_list_end +#define attr_valid_list(x) { ATTR_##x, #x }, +#define attr_valid_list_end(x) { ATTR_##x, #x } + +#define show_attr_valid_flags(x) __print_flags(x, "|", ATTR_VALID_LIST) + +/* + * from include/uapi/linux/stat.h + */ +TRACE_DEFINE_ENUM(S_IFSOCK); +TRACE_DEFINE_ENUM(S_IFLNK); +TRACE_DEFINE_ENUM(S_IFREG); +TRACE_DEFINE_ENUM(S_IFBLK); +TRACE_DEFINE_ENUM(S_IFDIR); +TRACE_DEFINE_ENUM(S_IFCHR); +TRACE_DEFINE_ENUM(S_IFIFO); + +#define show_inode_type(x) \ + __print_symbolic(x, \ + { S_IFSOCK, "SOCK" }, \ + { S_IFLNK, "LNK" }, \ + { S_IFREG, "REG" }, \ + { S_IFBLK, "BLK" }, \ + { S_IFDIR, "DIR" }, \ + { S_IFCHR, "CHR" }, \ + { S_IFIFO, "FIFO" }, \ + { 0, "NONE" }) + /* * from fs/nfsd/vfs.h */ @@ -805,6 +863,29 @@ TRACE_EVENT(nfsd_cb_done, __entry->status) ); +TRACE_EVENT(nfsd_setattr_args, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct svc_fh *fhp, + unsigned int valid + ), + TP_ARGS(rqstp, fhp, valid), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, fh_hash) + __field(unsigned long, valid) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->fh_hash = knfsd_fh_hash(&fhp->fh_handle); + __entry->valid = valid; + ), + TP_printk("xid=0x%08x fh_hash=0x%08x valid=%s", + __entry->xid, __entry->fh_hash, + show_attr_valid_flags(__entry->valid) + ) +); + #endif /* _NFSD_TRACE_H */ #undef TRACE_INCLUDE_PATH diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 1ecaceebee13..a311593ac976 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -375,6 +375,8 @@ nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap, bool get_write_count; bool size_change = (iap->ia_valid & ATTR_SIZE); + trace_nfsd_setattr_args(rqstp, fhp, iap->ia_valid); + if (iap->ia_valid & ATTR_SIZE) { accmode |= NFSD_MAY_WRITE|NFSD_MAY_OWNER_OVERRIDE; ftype = S_IFREG; From patchwork Wed Sep 16 21:42:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781031 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 08BF3139F for ; Wed, 16 Sep 2020 22:08:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DF7D521941 for ; Wed, 16 Sep 2020 22:08:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sDYBCcZI" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726084AbgIPWIM (ORCPT ); Wed, 16 Sep 2020 18:08:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726336AbgIPWH7 (ORCPT ); Wed, 16 Sep 2020 18:07:59 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A703C061A30 for ; Wed, 16 Sep 2020 14:42:57 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id y2so269399ilp.7 for ; Wed, 16 Sep 2020 14:42:57 -0700 (PDT) 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=1WJK/KvRSZWksK8GCJOggEZuMj4piQ+8Bp8DYLB3E7w=; b=sDYBCcZIBJ5KgUeN+c1x3mC8lt/+ZUEtHBUfNJ1F//2TCsjr//DKl0Up1Ru5q1AJ4e ngCuJ8JBlMaQU1e1y1z2adERUWG6Pg3iLP40XrQCjwH/uTcw7+pSizUnqXWMguE7Q83J cn91Y1L+n2e2OjlYOI/BF3GFTqQKB2n02d7MOevLOUiPdbBpTQ8nKw2V1gHLpnoePJ6R GmRTgU/ZFYR/+tOJW0kOfvRWxIUd95lkJVD7h3cX8ynEqC5BJHJph8mQDGYQLArD7V+L Xu204ujUSdtD9i+QzvElDlXBfd7wLZAJ/DbstyV0iSu9Va5acx6NpmJArGqrC/J8/spn rA2A== 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=1WJK/KvRSZWksK8GCJOggEZuMj4piQ+8Bp8DYLB3E7w=; b=QrauN1gqg7Trw9pXlGxWimG9hdMRK36jAeoDU6ICSot/JxTE16LtWk5CtXGJL5LpIx JNRpPOYDdADlPTFMsWn4lb16RxuI6Qwe94cY2NlqwL1d5olkEXJNu/OMbCHP/JBA8q5D zDrfqJdhfFXmcPh7Yvuf34/lTuGJ1wPRfFIZBocMgn/uN0ZFYXUHea0ntDgw/75+SZ1X noa4ZLeFLtqnKAh7ePEVVeCrMEgRJTcPUJH0GQh27n65I+5jVXpvkK53lNNZ2xJDbvVc IMSuqdU7+36fXU9QvkzU7LQFylHzPfM1EVVt/U2mihXD5SnCYgML8tksKP1Xf19XhqH5 WHaw== X-Gm-Message-State: AOAM533C3yfJ0YGFGYYWie1UjL40HfghpmCs7uqr1Z8+7rWPHAsxjBKn V6f0NGLQ8h2HoY1EZKjwLug= X-Google-Smtp-Source: ABdhPJyRQXvoPuEOi1SbdOWxT8g6/2gwi44PjAk+E3ScjQm2azz+hXuP8tti6/3BAEAqrQjLIi88vQ== X-Received: by 2002:a92:6a0c:: with SMTP id f12mr21145223ilc.213.1600292576695; Wed, 16 Sep 2020 14:42:56 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id a21sm9673054ioh.12.2020.09.16.14.42.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:42:56 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLgtak023002; Wed, 16 Sep 2020 21:42:55 GMT Subject: [PATCH RFC 08/21] NFSD: Add tracepoint for nfsd_access() From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:42:55 -0400 Message-ID: <160029257508.29208.10177582417317460106.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org It is possible to use this tracepoint for several purposes, including troubleshooting export permission problems and auditing accesses to files. nfsd-1025 [002] 256.807403: nfsd_permission: xid=0x12147d7a type=REG access=WRITE|SATTR|OWNER_OVERRIDE owner=1046/100 user=1046/100 name=.clang-format status=0 Signed-off-by: Chuck Lever --- fs/nfsd/trace.c | 2 ++ fs/nfsd/trace.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/vfs.c | 1 + 3 files changed, 47 insertions(+) diff --git a/fs/nfsd/trace.c b/fs/nfsd/trace.c index f008b95ceec2..e6857b8bdf2b 100644 --- a/fs/nfsd/trace.c +++ b/fs/nfsd/trace.c @@ -1,4 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 +#include + #define CREATE_TRACE_POINTS #include "trace.h" diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 77b7e8a45776..4167726fe835 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -511,6 +511,50 @@ TRACE_EVENT(nfsd_clid_inuse_err, __entry->cl_boot, __entry->cl_id) ) +TRACE_EVENT(nfsd_access, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct dentry *dentry, + int access, + __be32 status + ), + TP_ARGS(rqstp, dentry, access, status), + TP_STRUCT__entry( + __field(u32, xid) + __field(unsigned long, type) + __field(unsigned long, access) + __field(uid_t, owner) + __field(gid_t, owner_group) + __field(uid_t, user) + __field(gid_t, user_group) + __field(int, status) + __dynamic_array(unsigned char, name, dentry->d_name.len + 1) + ), + TP_fast_assign( + const struct inode *inode = d_inode(dentry); + + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->type = inode->i_mode & S_IFMT; + __entry->access = access; + __entry->owner = __kuid_val(inode->i_uid); + __entry->owner_group = __kgid_val(inode->i_gid); + __entry->user = __kuid_val(current_fsuid()); + __entry->user_group = __kgid_val(current_fsgid()); + __entry->status = be32_to_cpu(status); + memcpy(__get_str(name), dentry->d_name.name, + dentry->d_name.len); + __get_str(name)[dentry->d_name.len] = '\0'; + ), + TP_printk("xid=0x%08x type=%s access=%s owner=%u/%u user=%u/%u name=%s status=%d", + __entry->xid, + show_inode_type(__entry->type), + show_perm_flags(__entry->access), + __entry->owner, __entry->owner_group, + __entry->user, __entry->user_group, + __get_str(name), __entry->status + ) +); + /* * from fs/nfsd/filecache.h */ diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index a311593ac976..0d354531ed19 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -687,6 +687,7 @@ nfsd_access(struct svc_rqst *rqstp, struct svc_fh *fhp, u32 *access, u32 *suppor sresult |= map->access; err2 = nfsd_permission(rqstp, export, dentry, map->how); + trace_nfsd_access(rqstp, dentry, map->how, err2); switch (err2) { case nfs_ok: result |= map->access; From patchwork Wed Sep 16 21:43:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781055 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EB89559D for ; Wed, 16 Sep 2020 22:23:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C5E602080C for ; Wed, 16 Sep 2020 22:23:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ba6F+JLI" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726460AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50358 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726413AbgIPWXB (ORCPT ); Wed, 16 Sep 2020 18:23:01 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F69AC061A31 for ; Wed, 16 Sep 2020 14:43:02 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id q4so280312ils.4 for ; Wed, 16 Sep 2020 14:43:02 -0700 (PDT) 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=bW7kaAmFj1OUzAjwtLAMPfTEPk6vdsjTzCFky6yUkPo=; b=Ba6F+JLIe5mmz431TCM1qPqVN3MkpQsCUkpRo3CJ8cOYnL3jOVzpu5XbGVTAyXf9dG R69fXYceSGC7ByVoZxWwr4FIU537KOdVhSKbBOgPmpTVxoxlp010fgQla+oP1g933lry JP7OxtN5aSAab2b2VcNlTjdWlfGoIK5KRvgw5njni8BkkTVe+sbjxbEXfvhUWOtXkD/m 4xJ+rheqfHcMl1N5nryS9U+Hp9klhnM0zdtwlvbcPsoo+25ckl5/Hl/p9IfiNC461Mlk Vra/vCibVSHy4cupiQxdER5VpUhyWlrlNppz+cM0tf1zwhlxT6jnS8xnbCNxNu/bqU3a WhDA== 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=bW7kaAmFj1OUzAjwtLAMPfTEPk6vdsjTzCFky6yUkPo=; b=aIfNcTQME2pg9u29f2laW/xSX/7faNIa9kWZGKacEj0AzAi55FSCbC91Vwl0gEuyDY Eegc+chVFaJY5YamoLpVBcZwOAN1BlLGyebQ0PKMOtKxavfiDB0O1nXlUgh+NpEU5+hY 2IOKSzqmzPNFUbm4MPTfbs5mpVHdHPxtD83FWZLU1Gzf+6sWpI0k9L5WuFUMoyC8TtTB t4NTp6apga8Oqo2InG2nGnUcnnqvNz3f6c6sbOBLZwaDr788XnRnmqKxJx8r6vYTgTw9 /Ct2GOgX8+l+oZofNWXYDBW9GIeB31JTaYW0LSQ1RfQ94p899qu9QM0gEB9ROUl0vIUF gdeg== X-Gm-Message-State: AOAM53073xAEC1+fix3lBFROR3H329ERU5vAiCros7mQGJDGm6HDPuuy SySvrOmUD2rMlquayQPSI4A= X-Google-Smtp-Source: ABdhPJyL42ETurmrqSSlhXBPsl09FZa1QrEY2X5pujQ68662BzAIJge+/iEHVxIaGccmaZz6i8JlHA== X-Received: by 2002:a05:6e02:11:: with SMTP id h17mr3051569ilr.300.1600292582036; Wed, 16 Sep 2020 14:43:02 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id a21sm9673145ioh.12.2020.09.16.14.43.01 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:01 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLh0CQ023005; Wed, 16 Sep 2020 21:43:00 GMT Subject: [PATCH RFC 09/21] NFSD: nfsd_compound_status tracepoint should record XID From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:00 -0400 Message-ID: <160029258039.29208.16002360772459794781.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org The two tracepoints, nfsd_compound and nfsd_compound_status, should provide matching information, to enable the records to be bracketed correctly. So, for example: nfsd-1034 [000] 165.191371: nfsd4_compound: xid=0xe62d9610 opcnt=4 nfsd-1034 [000] 165.191516: nfsd4_compound_status: xid=0xe62d9610 op=1/4 OP_PUTFH status=0 nfsd-1034 [000] 165.191637: nfsd4_compound_status: xid=0xe62d9610 op=2/4 OP_CREATE status=0 nfsd-1034 [000] 165.191639: nfsd4_compound_status: xid=0xe62d9610 op=3/4 OP_GETFH status=0 nfsd-1034 [000] 165.191680: nfsd4_compound_status: xid=0xe62d9610 op=4/4 OP_GETATTR status=0 Signed-off-by: Chuck Lever --- fs/nfsd/nfs4proc.c | 6 +++--- fs/nfsd/trace.h | 29 ++++++++++++++++++----------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index eaf50eafa935..3d6ca1bfb730 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -2371,7 +2371,7 @@ nfsd4_proc_compound(struct svc_rqst *rqstp) rqstp->rq_lease_breaker = (void **)&cstate->clp; - trace_nfsd_compound(rqstp, args->opcnt); + trace_nfsd4_compound(rqstp, args->opcnt); while (!status && resp->opcnt < args->opcnt) { op = &args->ops[resp->opcnt++]; @@ -2450,8 +2450,8 @@ nfsd4_proc_compound(struct svc_rqst *rqstp) status = op->status; } - trace_nfsd_compound_status(args->opcnt, resp->opcnt, status, - nfsd4_op_name(op->opnum)); + trace_nfsd4_compoundstatus(rqstp, args->opcnt, resp->opcnt, + status, nfsd4_op_name(op->opnum)); nfsd4_cstate_clear_replay(cstate); nfsd4_increment_op_stats(op->opnum); diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 4167726fe835..f58e43b5aa98 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -102,42 +102,49 @@ NFSD_PERMISSION_LIST #define show_perm_flags(val) __print_flags(val, "|", NFSD_PERMISSION_LIST) -TRACE_EVENT(nfsd_compound, - TP_PROTO(const struct svc_rqst *rqst, - u32 args_opcnt), - TP_ARGS(rqst, args_opcnt), +TRACE_EVENT(nfsd4_compound, + TP_PROTO( + const struct svc_rqst *rqstp, + u32 args_opcnt + ), + TP_ARGS(rqstp, args_opcnt), TP_STRUCT__entry( __field(u32, xid) __field(u32, args_opcnt) ), TP_fast_assign( - __entry->xid = be32_to_cpu(rqst->rq_xid); + __entry->xid = be32_to_cpu(rqstp->rq_xid); __entry->args_opcnt = args_opcnt; ), TP_printk("xid=0x%08x opcnt=%u", __entry->xid, __entry->args_opcnt) ) -TRACE_EVENT(nfsd_compound_status, - TP_PROTO(u32 args_opcnt, +TRACE_EVENT(nfsd4_compoundstatus, + TP_PROTO( + const struct svc_rqst *rqstp, + u32 args_opcnt, u32 resp_opcnt, __be32 status, - const char *name), - TP_ARGS(args_opcnt, resp_opcnt, status, name), + const char *name + ), + TP_ARGS(rqstp, args_opcnt, resp_opcnt, status, name), TP_STRUCT__entry( + __field(u32, xid) __field(u32, args_opcnt) __field(u32, resp_opcnt) __field(int, status) __string(name, name) ), TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); __entry->args_opcnt = args_opcnt; __entry->resp_opcnt = resp_opcnt; __entry->status = be32_to_cpu(status); __assign_str(name, name); ), - TP_printk("op=%u/%u %s status=%d", - __entry->resp_opcnt, __entry->args_opcnt, + TP_printk("xid=0x%08x op=%u/%u %s status=%d", + __entry->xid, __entry->resp_opcnt, __entry->args_opcnt, __get_str(name), __entry->status) ) From patchwork Wed Sep 16 21:43:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781057 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DEA05618 for ; Wed, 16 Sep 2020 22:23:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AC84C20732 for ; Wed, 16 Sep 2020 22:23:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="evDG5iyX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726559AbgIPWXF (ORCPT ); Wed, 16 Sep 2020 18:23:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726302AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2CE9FC061A32 for ; Wed, 16 Sep 2020 14:43:08 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id s88so267363ilb.6 for ; Wed, 16 Sep 2020 14:43:08 -0700 (PDT) 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=dyP3WvmFan7sebQUVao839wjBdNraxuzxfl07Af4Gok=; b=evDG5iyX4PMIQY4N0LiOZeKSvPjIzApWIA1t6a5vNYt7tsz0qGNJSbzOkvaxFLU2E7 kZJYbODewA6vdBdfzZxKx9vBanQW3tXEXn5NoHxoDsQ8aDcS5aLQ1KAbFelyKtsnKUWN jJHcORsglJ+l+4+mnJUFjT+9xLAJ8sF6/QozbcneHeghTRXqTqpogoAc9Ro4rPAHKWN/ 1Hp+LpaGqBcIHs99y3+2WldHK/+45CMLmylTHtTVhGEe5sHdXeXMLENTw6ECAgipidCz U2tQ/kNRBzXXxU2iIb6Iojr6RY2UjpgxZ0dSqB+lD1kSTXPaUhgvMme9hkinWI8V8bho Lbsw== 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=dyP3WvmFan7sebQUVao839wjBdNraxuzxfl07Af4Gok=; b=LCV2/sQ+tTN7Quk/PMdqU02RTqOaNyo8FdvkVm2Ax1+5V10i7dCQ7HqaFLZ6Tx03GB JHcAYmvZH6f5Ka0bP0XJcTsFGu0bQJILo3lhNnDuwVnGa4Lw9vbElwIKQOgSy4e0AOBZ OoscjDmFdNrhZIbu2mxCrmYPoG7gAO60leHnqgs/J69qv3GLhshGKN1PUBG3AQPVEuau ctwAOPTK/xIonQ857VeDQLUFgodHxhxQixtqiAZrhRZPkNbaDnuzwoMhFnM5+wP3hPht 4NLeQqxlUReR2nP5edAV/623Ymggt4snbUFsbPersOtFg8l4PRrXQgXH0e9Ze3VCXq46 oIZQ== X-Gm-Message-State: AOAM531SPd11OV6Q/hgkeSxqAHbs9r+SZvz/xOPK+GgoxYYp7OVXI6LG we0QKreSPue7cpzEVncBGHZgUJ1WzY0= X-Google-Smtp-Source: ABdhPJz63q5wB6O9RQSoe3fA055WT4pSzZwGSgUjNix1jeu2do8fh4Q3qI/Z5Px/tyhp894CRpgrGQ== X-Received: by 2002:a92:d988:: with SMTP id r8mr22435993iln.51.1600292587463; Wed, 16 Sep 2020 14:43:07 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id r7sm11621203ilg.27.2020.09.16.14.43.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:06 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLh5Nl023008; Wed, 16 Sep 2020 21:43:05 GMT Subject: [PATCH RFC 10/21] NFSD: Add client ID lifetime tracepoints From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:05 -0400 Message-ID: <160029258576.29208.5148448085599573840.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org These tracepoints enable troubleshooting of duplicate clientid strings and they bracket NFSv4 state recovery. Examples: NFSv4.0: nfsd-1037 [000] 1282.828363: nfsd4_compound: xid=0xef35f61d opcnt=1 nfsd-1037 [000] 1282.828488: nfsd_cb_args: client 5f60f8c2:36e7ec84 callback addr=192.168.2.51:38549 prog=1073741824 ident=1 nfsd-1037 [000] 1282.828492: nfsd4_setclientid: xid=0xef35f61d addr=192.168.2.51:0 \ nfs4_clientid=Linux NFSv4.0 manet.1015granger.net/2d9f29bfc60e4c97b19dc38ae1bbed35/192.168.2.55 \ verifier=1631b10 2717d415f client 5f60f8c2:36e7ec84 nfsd-1037 [000] 1282.828496: nfsd4_compoundstatus: xid=0xef35f61d op=1/1 OP_SETCLIENTID status=0 ... kworker/u8:2-1276 [001] 1802.149078: nfsd4_clid_purged: client 5f60f8c2:36e7ec84 kworker/u8:2-1276 [002] 1802.152047: nfsd4_clid_destroy: client 5f60f8c2:36e7ec84 NFSv4.1: nfsd-1036 [003] 239.777632: nfsd4_compound: xid=0x746ca73c opcnt=1 nfsd-1036 [003] 239.777776: nfsd4_exchange_id: xid=0x746ca73c addr=192.168.2.51:0 \ nfs4_clientid=Linux NFSv4.1 2d9f29bfc60e4c97b19dc38ae1bbed35/manet.1015granger.net \ verifier=1631b102717d415f flags=SUPP_MOVED_REFER|USE_PNFS_MDS spa_how=SP4_MACH_CRED \ seqid=0 client 5f610879:b615c40a kworker/u8:4-144 [002] 239.777795: nfsd4_cb_work: addr= client 5f610879:b615c409 procedure=CB_NULL nfsd-1036 [003] 239.777887: nfsd4_compoundstatus: xid=0x746ca73c op=1/1 OP_EXCHANGE_ID status=0 nfsd-1036 [003] 239.779793: nfsd4_compound: xid=0x756ca73c opcnt=1 nfsd-1036 [003] 239.780052: nfsd4_cb_state: addr=192.168.2.51:0 client 5f610879:b615c40a state=UNKNOWN kworker/u8:4-144 [002] 239.780063: nfsd4_cb_work: addr=192.168.2.51:0 client 5f610879:b615c40a procedure=CB_NULL kworker/u8:4-144 [002] 239.780416: nfsd4_cb_setup: addr=192.168.2.51:0 client 5f610879:b615c40a state=UNKNOWN nfsd-1036 [000] 239.780433: nfsd4_compoundstatus: xid=0x756ca73c op=1/1 OP_CREATE_SESSION status=0 nfsd-1036 [000] 239.782856: nfsd4_compound: xid=0x766ca73c opcnt=2 nfsd-1036 [000] 239.782874: nfsd4_compoundstatus: xid=0x766ca73c op=1/2 OP_SEQUENCE status=0 nfsd-1036 [000] 239.782876: nfsd4_clid_reclaim_complete: client 5f610879:b615c40a nfsd-1036 [000] 239.785385: nfsd4_compoundstatus: xid=0x766ca73c op=2/2 OP_RECLAIM_COMPLETE status=0 ... nfsd-1036 [003] 649.644616: nfsd4_compound: xid=0x88d1a73c opcnt=1 nfsd-1036 [003] 649.647841: nfsd4_clid_destroy: client 5f610879:b615c40a kworker/u8:6-158 [002] 649.647854: nfsd4_cb_work: addr=192.168.2.51:0 client 5f610879:b615c40a procedure=CB_NULL nfsd-1036 [003] 649.647946: nfsd4_compoundstatus: xid=0x88d1a73c op=1/1 OP_DESTROY_CLIENTID status=0 Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 37 +++++-------- fs/nfsd/trace.h | 149 +++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 134 insertions(+), 52 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 0b3059b8b36c..974b3303d2fc 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1935,7 +1935,7 @@ STALE_CLIENTID(clientid_t *clid, struct nfsd_net *nn) */ if (clid->cl_boot == (u32)nn->boot_time) return 0; - trace_nfsd_clid_stale(clid); + trace_nfsd4_clid_stale(clid); return 1; } @@ -2077,6 +2077,8 @@ __destroy_client(struct nfs4_client *clp) struct nfs4_delegation *dp; struct list_head reaplist; + trace_nfsd4_clid_destroy(&clp->cl_clientid); + INIT_LIST_HEAD(&reaplist); spin_lock(&state_lock); while (!list_empty(&clp->cl_delegations)) { @@ -3062,18 +3064,10 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfs4_client *conf, *new; struct nfs4_client *unconf = NULL; __be32 status; - char addr_str[INET6_ADDRSTRLEN]; nfs4_verifier verf = exid->verifier; - struct sockaddr *sa = svc_addr(rqstp); bool update = exid->flags & EXCHGID4_FLAG_UPD_CONFIRMED_REC_A; struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); - rpc_ntop(sa, addr_str, sizeof(addr_str)); - dprintk("%s rqstp=%p exid=%p clname.len=%u clname.data=%p " - "ip_addr=%s flags %x, spa_how %d\n", - __func__, rqstp, exid, exid->clname.len, exid->clname.data, - addr_str, exid->flags, exid->spa_how); - if (exid->flags & ~EXCHGID4_FLAG_MASK_A) return nfserr_inval; @@ -3200,8 +3194,7 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, exid->seqid = conf->cl_cs_slot.sl_seqid + 1; nfsd4_set_ex_flags(conf, exid); - dprintk("nfsd4_exchange_id seqid %d flags %x\n", - conf->cl_cs_slot.sl_seqid, conf->cl_exchange_flags); + trace_nfsd4_exchange_id(rqstp, exid); status = nfs_ok; out: @@ -3894,8 +3887,11 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, union nfsd4_op_u *u) { struct nfsd4_reclaim_complete *rc = &u->reclaim_complete; + struct nfs4_client *clp = cstate->session->se_client; __be32 status = 0; + trace_nfsd4_clid_reclaim_complete(&clp->cl_clientid); + if (rc->rca_one_fs) { if (!cstate->current_fh.fh_dentry) return nfserr_nofilehandle; @@ -3907,12 +3903,11 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp, } status = nfserr_complete_already; - if (test_and_set_bit(NFSD4_CLIENT_RECLAIM_COMPLETE, - &cstate->session->se_client->cl_flags)) + if (test_and_set_bit(NFSD4_CLIENT_RECLAIM_COMPLETE, &clp->cl_flags)) goto out; status = nfserr_stale_clientid; - if (is_client_expired(cstate->session->se_client)) + if (is_client_expired(clp)) /* * The following error isn't really legal. * But we only get here if the client just explicitly @@ -3923,8 +3918,8 @@ nfsd4_reclaim_complete(struct svc_rqst *rqstp, goto out; status = nfs_ok; - nfsd4_client_record_create(cstate->session->se_client); - inc_reclaim_complete(cstate->session->se_client); + nfsd4_client_record_create(clp); + inc_reclaim_complete(clp); out: return status; } @@ -3972,6 +3967,7 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, setclid->se_clientid.cl_id = new->cl_clientid.cl_id; memcpy(setclid->se_confirm.data, new->cl_confirm.data, sizeof(setclid->se_confirm.data)); new = NULL; + trace_nfsd4_setclientid(rqstp, setclid); status = nfs_ok; out: spin_unlock(&nn->client_lock); @@ -5314,7 +5310,7 @@ nfsd4_renew(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, __be32 status; struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); - trace_nfsd_clid_renew(clid); + trace_nfsd4_clid_renew(clid); status = lookup_clientid(clid, cstate, nn, false); if (status) goto out; @@ -5426,7 +5422,7 @@ nfs4_laundromat(struct nfsd_net *nn) break; } if (mark_client_expired_locked(clp)) { - trace_nfsd_clid_expired(&clp->cl_clientid); + trace_nfsd4_clid_expired(&clp->cl_clientid); continue; } list_add(&clp->cl_lru, &reaplist); @@ -5434,7 +5430,7 @@ nfs4_laundromat(struct nfsd_net *nn) spin_unlock(&nn->client_lock); list_for_each_safe(pos, next, &reaplist) { clp = list_entry(pos, struct nfs4_client, cl_lru); - trace_nfsd_clid_purged(&clp->cl_clientid); + trace_nfsd4_clid_purged(&clp->cl_clientid); list_del_init(&clp->cl_lru); expire_client(clp); } @@ -7185,7 +7181,6 @@ nfs4_client_to_reclaim(struct xdr_netobj name, struct xdr_netobj princhash, unsigned int strhashval; struct nfs4_client_reclaim *crp; - trace_nfsd_clid_reclaim(nn, name.len, name.data); crp = alloc_reclaim(); if (crp) { strhashval = clientstr_hashval(name); @@ -7235,8 +7230,6 @@ nfsd4_find_reclaim_client(struct xdr_netobj name, struct nfsd_net *nn) unsigned int strhashval; struct nfs4_client_reclaim *crp = NULL; - trace_nfsd_clid_find(nn, name.len, name.data); - strhashval = clientstr_hashval(name); list_for_each_entry(crp, &nn->reclaim_str_hashtbl[strhashval], cr_strhash) { if (compare_blob(&crp->cr_name, &name) == 0) { diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index f58e43b5aa98..cbecefc3e112 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -11,6 +11,7 @@ #include #include "export.h" #include "nfsfh.h" +#include "xdr4.h" /* * from include/linux/fs.h @@ -436,10 +437,12 @@ DECLARE_EVENT_CLASS(nfsd_clientid_class, ) #define DEFINE_CLIENTID_EVENT(name) \ -DEFINE_EVENT(nfsd_clientid_class, nfsd_clid_##name, \ +DEFINE_EVENT(nfsd_clientid_class, nfsd4_clid_##name, \ TP_PROTO(const clientid_t *clid), \ TP_ARGS(clid)) +DEFINE_CLIENTID_EVENT(reclaim_complete); +DEFINE_CLIENTID_EVENT(destroy); DEFINE_CLIENTID_EVENT(expired); DEFINE_CLIENTID_EVENT(purged); DEFINE_CLIENTID_EVENT(renew); @@ -465,35 +468,6 @@ DEFINE_EVENT(nfsd_net_class, nfsd_##name, \ DEFINE_NET_EVENT(grace_start); DEFINE_NET_EVENT(grace_complete); -DECLARE_EVENT_CLASS(nfsd_clid_class, - TP_PROTO(const struct nfsd_net *nn, - unsigned int namelen, - const unsigned char *namedata), - TP_ARGS(nn, namelen, namedata), - TP_STRUCT__entry( - __field(unsigned long long, boot_time) - __field(unsigned int, namelen) - __dynamic_array(unsigned char, name, namelen) - ), - TP_fast_assign( - __entry->boot_time = nn->boot_time; - __entry->namelen = namelen; - memcpy(__get_dynamic_array(name), namedata, namelen); - ), - TP_printk("boot_time=%16llx nfs4_clientid=%.*s", - __entry->boot_time, __entry->namelen, __get_str(name)) -) - -#define DEFINE_CLID_EVENT(name) \ -DEFINE_EVENT(nfsd_clid_class, nfsd_clid_##name, \ - TP_PROTO(const struct nfsd_net *nn, \ - unsigned int namelen, \ - const unsigned char *namedata), \ - TP_ARGS(nn, namelen, namedata)) - -DEFINE_CLID_EVENT(find); -DEFINE_CLID_EVENT(reclaim); - TRACE_EVENT(nfsd_clid_inuse_err, TP_PROTO(const struct nfs4_client *clp), TP_ARGS(clp), @@ -937,6 +911,121 @@ TRACE_EVENT(nfsd_setattr_args, ) ); +TRACE_EVENT(nfsd4_setclientid, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_setclientid *setclid + ), + TP_ARGS(rqstp, setclid), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, cl_boot) + __field(u32, cl_id) + __array(unsigned char, addr, sizeof(struct sockaddr_in6)) + __array(char, verifier, NFS4_VERIFIER_SIZE) + __field(int, len) + __dynamic_array(unsigned char, clientid, setclid->se_name.len) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->cl_boot = setclid->se_clientid.cl_boot; + __entry->cl_id = setclid->se_clientid.cl_id; + memcpy(__entry->addr, svc_addr(rqstp), sizeof(struct sockaddr_in6)); + memcpy(__entry->verifier, &setclid->se_verf, NFS4_VERIFIER_SIZE); + __entry->len = setclid->se_name.len; + memcpy(__get_dynamic_array(clientid), + setclid->se_name.data, setclid->se_name.len); + ), + TP_printk("xid=0x%08x addr=%pISpc nfs4_clientid=%.*s verifier=%s client=%08x:%08x", + __entry->xid, __entry->addr, + __entry->len, __get_str(clientid), + __print_hex_str(__entry->verifier, NFS4_VERIFIER_SIZE), + __entry->cl_boot, __entry->cl_id + ) +); + +/* + * from include/uapi/linux/nfs4.h + */ +#define NFSD_EXCHGID4_FLAG_LIST \ + nfsd_exchgid4_flag(SUPP_MOVED_REFER) \ + nfsd_exchgid4_flag(SUPP_MOVED_MIGR) \ + nfsd_exchgid4_flag(BIND_PRINC_STATEID) \ + nfsd_exchgid4_flag(USE_NON_PNFS) \ + nfsd_exchgid4_flag(USE_PNFS_MDS) \ + nfsd_exchgid4_flag(USE_PNFS_DS) \ + nfsd_exchgid4_flag(MASK_PNFS) \ + nfsd_exchgid4_flag(UPD_CONFIRMED_REC_A) \ + nfsd_exchgid4_flag_end(CONFIRMED_R) + +#undef nfsd_exchgid4_flag +#undef nfsd_exchgid4_flag_end +#define nfsd_exchgid4_flag(x) TRACE_DEFINE_ENUM(EXCHGID4_FLAG_##x); +#define nfsd_exchgid4_flag_end(x) TRACE_DEFINE_ENUM(EXCHGID4_FLAG_##x); + +NFSD_EXCHGID4_FLAG_LIST + +#undef nfsd_exchgid4_flag +#undef nfsd_exchgid4_flag_end +#define nfsd_exchgid4_flag(x) { EXCHGID4_FLAG_##x, #x }, +#define nfsd_exchgid4_flag_end(x) { EXCHGID4_FLAG_##x, #x } + +#define show_nfsd_exchgid4_flags(x) \ + __print_flags(x, "|", NFSD_EXCHGID4_FLAG_LIST) + +/* + * from include/linux/nfs4.h + */ +TRACE_DEFINE_ENUM(SP4_NONE); +TRACE_DEFINE_ENUM(SP4_MACH_CRED); +TRACE_DEFINE_ENUM(SP4_SSV); + +#define show_nfsd_exchid4_spa_how(x) \ + __print_symbolic(x, \ + { SP4_NONE, "SP4_NONE" }, \ + { SP4_MACH_CRED, "SP4_MACH_CRED" }, \ + { SP4_SSV, "SP4_SSV" }) + +TRACE_EVENT(nfsd4_exchange_id, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_exchange_id *exid + ), + TP_ARGS(rqstp, exid), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, seqid) + __field(u32, cl_boot) + __field(u32, cl_id) + __field(unsigned long, flags) + __field(unsigned long, spa_how) + __array(unsigned char, addr, sizeof(struct sockaddr_in6)) + __array(char, verifier, NFS4_VERIFIER_SIZE) + __field(int, len) + __dynamic_array(unsigned char, clientid, exid->clname.len) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->seqid = exid->seqid - 1; + __entry->cl_boot = exid->clientid.cl_boot; + __entry->cl_id = exid->clientid.cl_id; + __entry->flags = exid->flags; + __entry->spa_how = exid->spa_how; + memcpy(__entry->addr, svc_addr(rqstp), sizeof(struct sockaddr_in6)); + memcpy(__entry->verifier, &exid->verifier, NFS4_VERIFIER_SIZE); + __entry->len = exid->clname.len; + memcpy(__get_dynamic_array(clientid), exid->clname.data, exid->clname.len); + ), + TP_printk("xid=0x%08x addr=%pISpc nfs4_clientid=%.*s verifier=%s flags=%s spa_how=%s seqid=%u client=%08x:%08x", + __entry->xid, __entry->addr, + __entry->len, __get_str(clientid), + __print_hex_str(__entry->verifier, NFS4_VERIFIER_SIZE), + show_nfsd_exchgid4_flags(__entry->flags), + show_nfsd_exchid4_spa_how(__entry->spa_how), + __entry->seqid, __entry->cl_boot, __entry->cl_id + ) +); + #endif /* _NFSD_TRACE_H */ #undef TRACE_INCLUDE_PATH From patchwork Wed Sep 16 21:43:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781063 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E656659D for ; Wed, 16 Sep 2020 22:23:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B21E821941 for ; Wed, 16 Sep 2020 22:23:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GhXLRMYK" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726533AbgIPWX0 (ORCPT ); Wed, 16 Sep 2020 18:23:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50370 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726538AbgIPWXF (ORCPT ); Wed, 16 Sep 2020 18:23:05 -0400 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A49E7C061D7F for ; Wed, 16 Sep 2020 14:43:15 -0700 (PDT) Received: by mail-io1-xd44.google.com with SMTP id r9so10034505ioa.2 for ; Wed, 16 Sep 2020 14:43:15 -0700 (PDT) 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=jX10+7JlPXCMG9sNzUY3iR6CfLcxLZAoBGxLS8lkjB0=; b=GhXLRMYKdqITnerd8/nHqiYNv2LsGF+S/6hwdNQdVqCj1Q3X8iPVjJREtV8cPeD78w qKJDuXNfx4PROnFjH4Cz8jBENZbhs9skJ3J2vXint04PLCcMJlb6GSzinJhk68rwl00Y yVzHSKpjjYzTWeN2+z0CZDR422vnXqaZeASSxe350kg6xJuKACBetzSKQe0n04gEz01v 67fZKoZh59QzK4Ay+iXfHYT6BHnILYX1LIZdcrLQgV7khnezQ1LyaVz55CztPqSaLUB3 mhRzRpE56S0JgvnzJy2s61NXsDnUqvPMZWBbHyWHf0KzcGZEeFyc2lePq2MRVME0fm/9 TUlA== 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=jX10+7JlPXCMG9sNzUY3iR6CfLcxLZAoBGxLS8lkjB0=; b=N4K33X7ieYQTlZ7IxAHtp15aMTAZvidNDAuX9A8qxqZBEX5XSJeQBpRpql3Yn6RxrY 4fHO9VOKorLfpHUSacymfqD8ZH/ozw6lgBA+/WTjWHjKPkD2IcWLryefyTPmEdlhDpNT y7AqTrreMDo2M4d5jvMDPgTW8IA5jMZGdJ75tXVHGyQ853PCwVt6Il1dz8Re1jJgjD0j v3wZqqiiGOxNt4Xt+GhOKyEaqEYvhrcVWVFODprPId49WNh2eDSAxJzeFkZG0xoFw7Nx tAO/WM6ExER9EX42ZfQvN7GIv/0SUfumMWXwd34/8C6UdZzEad92BsHvHNAyasX4Jl7o cpSg== X-Gm-Message-State: AOAM533q2lslnlaln+WlJA3vyY/ZGGJsKjMowguh9ACLwpyNFvXXApGp zSWZ8Barg+FK6IUwVfXWrGQcwWtF8x8= X-Google-Smtp-Source: ABdhPJwrPbYLcW82iCigvkU03f7NYVF5Rc6Jqjvtgj1tEU7pHyHvkspYzpGsqb2Z8wpALTQFFTfBXw== X-Received: by 2002:a05:6602:2f0e:: with SMTP id q14mr20944583iow.110.1600292592900; Wed, 16 Sep 2020 14:43:12 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id z15sm11369602ilb.73.2020.09.16.14.43.11 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:12 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhB0B023011; Wed, 16 Sep 2020 21:43:11 GMT Subject: [PATCH RFC 11/21] NFSD: Add tracepoints to report NFSv4 session state From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:11 -0400 Message-ID: <160029259113.29208.736901808320139614.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org These record the SEQ4 status flags and session slot and sequence information for debugging purposes. Examples: nfsd-1034 [001] 217.828352: nfsd4_create_session: xid=0x0059d52e client 5f611a66:37899067 sessionid=661a615f679089370300000000000000 nfsd-1034 [001] 217.830900: nfsd4_sequence: xid=0x0159d52e sessionid=661a615f679089370300000000000000 seqid=1 slot=0/30 status= ... nfsd-1034 [002] 627.709041: nfsd4_destroy_session: xid=0x54bed52e sessionid=661a615f679089370300000000000000 Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 6 ++ fs/nfsd/trace.h | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 974b3303d2fc..f101202ed536 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -3446,6 +3446,7 @@ nfsd4_create_session(struct svc_rqst *rqstp, nfsd4_put_session(new); if (old) expire_client(old); + trace_nfsd4_create_session(rqstp, cr_ses); return status; out_free_conn: spin_unlock(&nn->client_lock); @@ -3545,6 +3546,8 @@ __be32 nfsd4_bind_conn_to_session(struct svc_rqst *rqstp, struct net *net = SVC_NET(rqstp); struct nfsd_net *nn = net_generic(net, nfsd_net_id); + trace_nfsd4_bind_conn_to_session(rqstp, bcts); + if (!nfsd4_last_compound_op(rqstp)) return nfserr_not_only_op; spin_lock(&nn->client_lock); @@ -3591,6 +3594,8 @@ nfsd4_destroy_session(struct svc_rqst *r, struct nfsd4_compound_state *cstate, struct net *net = SVC_NET(r); struct nfsd_net *nn = net_generic(net, nfsd_net_id); + trace_nfsd4_destroy_session(r, sessionid); + status = nfserr_not_only_op; if (nfsd4_compound_in_session(cstate, sessionid)) { if (!nfsd4_last_compound_op(r)) @@ -3812,6 +3817,7 @@ nfsd4_sequence(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, } if (!list_empty(&clp->cl_revoked)) seq->status_flags |= SEQ4_STATUS_RECALLABLE_STATE_REVOKED; + trace_nfsd4_sequence(rqstp, seq); out_no_session: if (conn) free_conn(conn); diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index cbecefc3e112..dbbc45f22a80 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -911,6 +911,169 @@ TRACE_EVENT(nfsd_setattr_args, ) ); +TRACE_EVENT(nfsd4_create_session, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_create_session *cr_ses + ), + TP_ARGS(rqstp, cr_ses), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, cl_boot) + __field(u32, cl_id) + __array(unsigned char, sessionid, NFS4_MAX_SESSIONID_LEN) + + __field(u32, fore_maxreqsz) + __field(u32, fore_maxrespsz) + __field(u32, fore_maxops) + __field(u32, fore_maxreps) + + __field(u32, back_maxreqsz) + __field(u32, back_maxrespsz) + __field(u32, back_maxops) + __field(u32, back_maxreps) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->cl_boot = cr_ses->clientid.cl_boot; + __entry->cl_id = cr_ses->clientid.cl_id; + memcpy(__entry->sessionid, &cr_ses->sessionid, + NFS4_MAX_SESSIONID_LEN); + __entry->fore_maxreqsz = cr_ses->fore_channel.maxreq_sz; + __entry->fore_maxrespsz = cr_ses->fore_channel.maxresp_sz; + __entry->fore_maxops = cr_ses->fore_channel.maxops; + __entry->fore_maxreps = cr_ses->fore_channel.maxreqs; + __entry->back_maxreqsz = cr_ses->back_channel.maxreq_sz; + __entry->back_maxrespsz = cr_ses->back_channel.maxresp_sz; + __entry->back_maxops = cr_ses->back_channel.maxops; + __entry->back_maxreps = cr_ses->back_channel.maxreqs; + ), + TP_printk("xid=0x%08x client=%08x:%08x sessionid=%s", + __entry->xid, __entry->cl_boot, __entry->cl_id, + __print_hex_str(__entry->sessionid, NFS4_MAX_SESSIONID_LEN) + ) +); + +/* + * from include/uapi/linux/nfs4.h + */ +TRACE_DEFINE_ENUM(NFS4_CDFC4_FORE); +TRACE_DEFINE_ENUM(NFS4_CDFC4_BACK); +TRACE_DEFINE_ENUM(NFS4_CDFC4_BOTH); +TRACE_DEFINE_ENUM(NFS4_CDFC4_BACK_OR_BOTH); + +#define show_nfsd_bcts_dir(x) \ + __print_symbolic(x, \ + { NFS4_CDFC4_FORE, "FORE" }, \ + { NFS4_CDFC4_BACK, "BACK" }, \ + { NFS4_CDFC4_BOTH, "BOTH" }, \ + { NFS4_CDFC4_BACK_OR_BOTH, "BACK_OR_BOTH" }) + +TRACE_EVENT(nfsd4_bind_conn_to_session, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_bind_conn_to_session *bcts + ), + TP_ARGS(rqstp, bcts), + TP_STRUCT__entry( + __field(u32, xid) + __field(unsigned long, dir) + __array(unsigned char, sessionid, NFS4_MAX_SESSIONID_LEN) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->dir = bcts->dir; + memcpy(__entry->sessionid, &bcts->sessionid, + NFS4_MAX_SESSIONID_LEN); + ), + TP_printk("xid=0x%08x sessionid=%s, dir=%s", + __entry->xid, + __print_hex_str(__entry->sessionid, NFS4_MAX_SESSIONID_LEN), + show_nfsd_bcts_dir(__entry->dir) + ) +); + +TRACE_EVENT(nfsd4_destroy_session, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfs4_sessionid *sessionid + ), + TP_ARGS(rqstp, sessionid), + TP_STRUCT__entry( + __field(u32, xid) + __array(unsigned char, sessionid, NFS4_MAX_SESSIONID_LEN) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + memcpy(__entry->sessionid, sessionid, NFS4_MAX_SESSIONID_LEN); + ), + TP_printk("xid=0x%08x sessionid=%s", + __entry->xid, + __print_hex_str(__entry->sessionid, NFS4_MAX_SESSIONID_LEN) + ) +); + +/* + * from include/uapi/linux/nfs4.h + */ +#define NFSD_SEQ4_FLAG_LIST \ + nfsd_seq4_flag(CB_PATH_DOWN) \ + nfsd_seq4_flag(CB_GSS_CONTEXTS_EXPIRING) \ + nfsd_seq4_flag(CB_GSS_CONTEXTS_EXPIRED) \ + nfsd_seq4_flag(EXPIRED_ALL_STATE_REVOKED) \ + nfsd_seq4_flag(EXPIRED_SOME_STATE_REVOKED) \ + nfsd_seq4_flag(ADMIN_STATE_REVOKED) \ + nfsd_seq4_flag(RECALLABLE_STATE_REVOKED) \ + nfsd_seq4_flag(LEASE_MOVED) \ + nfsd_seq4_flag(RESTART_RECLAIM_NEEDED) \ + nfsd_seq4_flag(CB_PATH_DOWN_SESSION) \ + nfsd_seq4_flag_end(BACKCHANNEL_FAULT) + +#undef nfsd_seq4_flag +#undef nfsd_seq4_flag_end +#define nfsd_seq4_flag(x) TRACE_DEFINE_ENUM(SEQ4_STATUS_##x); +#define nfsd_seq4_flag_end(x) TRACE_DEFINE_ENUM(SEQ4_STATUS_##x); + +NFSD_SEQ4_FLAG_LIST + +#undef nfsd_seq4_flag +#undef nfsd_seq4_flag_end +#define nfsd_seq4_flag(x) { SEQ4_STATUS_##x, #x }, +#define nfsd_seq4_flag_end(x) { SEQ4_STATUS_##x, #x } + +#define show_nfsd_seq4_status(x) __print_flags(x, "|", NFSD_SEQ4_FLAG_LIST) + +TRACE_EVENT(nfsd4_sequence, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_sequence *seq + ), + TP_ARGS(rqstp, seq), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, seqid) + __field(u32, slotid) + __field(u32, maxslots) + __field(unsigned long, flags) + __array(unsigned char, sessionid, NFS4_MAX_SESSIONID_LEN) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->seqid = seq->seqid; + __entry->slotid = seq->slotid; + __entry->maxslots = seq->maxslots; + __entry->flags = seq->status_flags; + memcpy(__entry->sessionid, &seq->sessionid, + NFS4_MAX_SESSIONID_LEN); + ), + TP_printk("xid=0x%08x sessionid=%s slot=%u/%u seqid=%u flags=%s", + __entry->xid, + __print_hex_str(__entry->sessionid, NFS4_MAX_SESSIONID_LEN), + __entry->slotid, __entry->maxslots, __entry->seqid, + show_nfsd_seq4_status(__entry->flags) + ) +); + TRACE_EVENT(nfsd4_setclientid, TP_PROTO( const struct svc_rqst *rqstp, From patchwork Wed Sep 16 21:43:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781069 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9A966618 for ; Wed, 16 Sep 2020 22:23:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 75E6E20732 for ; Wed, 16 Sep 2020 22:23:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ndE17coy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726520AbgIPWXc (ORCPT ); Wed, 16 Sep 2020 18:23:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726436AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CAF46C0698C0 for ; Wed, 16 Sep 2020 14:43:18 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id h11so243441ilj.11 for ; Wed, 16 Sep 2020 14:43:18 -0700 (PDT) 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=2V0cWFloxSr2HwFHlJuVbFbY8N1g5HU2uyUXmgJD/58=; b=ndE17coyXoz7RwjF5vC3lLLk6ZllT80KQ/m4PtwY9FeawMoUX1Ohk6VV3q+BjFYHI6 u9aHqdD8oFxMR2oWfjT8emU3RXIbSuZ6W42hsWsFX/ilMd9ZxxeXLSbfZ8YPvQE6SFJ/ BgqNd9qY3FcvuYoE490h2Ibx0rEg7QPc14IF5Gpzxoy4vIE7zx58AhOaMHqoDrDlLak1 M7DSz4VcSrsM0TPegRHtvVnWblYsM39ePsDf3bKQHx8x3YTvRl67eNXS7b3TemP7WCah e7kYKBXDtHB84dpUvXclBQkv1QBrQguFWSqFlPoJVSmJc7XlMPzit/QPf/dD/Q/VyAdd msuw== 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=2V0cWFloxSr2HwFHlJuVbFbY8N1g5HU2uyUXmgJD/58=; b=q5Rn4O0TWuSU11ivdIyofovOXN2aXzelV8l4hJGqAfujFaGcGk0ZbT8HZlw8rdqiHV 1f0kDG9xpyZJl4NTDz+t3xqSMwWJBZH2q+zahy8SnV/SwyvP4FPbSBWqUpg6bMgAkvY3 o+As9C+UoSQCBUgdRqDVS1T3wyDvjY1k3VbYFjNzjp198UY2RS3fbYJVZjOvDPUmlCky 7s2Q91Pl0JA/+FACS6n9Pwa1yT3hgAONArud67SjOVPmxIlFJkibxD5bqNRVDt8cHp+S tF+rACpOlsMXRcE6VqwQj4e9KI61WaFWsgiT4U1/4XH4WsQh5+CqwPNBLBPor3VGTIdJ 25fA== X-Gm-Message-State: AOAM5318XdKouuH7kFOMk+jiogRoS9k2HGuXRNFLHhLKuHZs9i7QNu9w GZ8mJIBOBfzdv5WCcAw/s9U= X-Google-Smtp-Source: ABdhPJw43kGFs4AjaR5WDINOACeXNs0hCvNSVU6ecR465B+P7qVPtvxdVHnWO9fHLB5K2H1Lgn3wfw== X-Received: by 2002:a92:3302:: with SMTP id a2mr1091466ilf.84.1600292598216; Wed, 16 Sep 2020 14:43:18 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id z72sm9817781iof.29.2020.09.16.14.43.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:17 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhGAY023014; Wed, 16 Sep 2020 21:43:16 GMT Subject: [PATCH RFC 12/21] NFSD: Add a tracepoint to report the current filehandle From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:16 -0400 Message-ID: <160029259649.29208.5584223073609480101.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Expose the "current_fh", which is an implicit argument in many NFSv4 operations. I've tried to insert this tracepoint at each place that can change the current filehandle. Typically: nfsd-1034 [000] 165.214516: nfsd_compound: xid=0x012e9610 opcnt=3 nfsd-1034 [000] 165.214518: nfsd_fh_current: xid=0x012e9610 fh_hash=0x90351828 name=Makefile nfsd-1034 [000] 165.214581: nfsd_compound_status: xid=0x012e9610 op=1/3 OP_PUTFH status=0 Signed-off-by: Chuck Lever --- fs/nfsd/nfs4proc.c | 22 ++++++++++++++++++---- fs/nfsd/trace.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 3d6ca1bfb730..a718097b5330 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -467,6 +467,7 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, } nfsd4_cleanup_open_state(cstate, open); nfsd4_bump_seqid(cstate, status); + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); return status; } @@ -517,6 +518,7 @@ nfsd4_putfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ret = 0; } #endif + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); return ret; } @@ -528,6 +530,7 @@ nfsd4_putrootfh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, fh_put(&cstate->current_fh); status = exp_pseudoroot(rqstp, &cstate->current_fh); + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); return status; } @@ -543,6 +546,7 @@ nfsd4_restorefh(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, memcpy(&cstate->current_stateid, &cstate->save_stateid, sizeof(stateid_t)); SET_CSTATE_FLAG(cstate, CURRENT_STATE_ID_FLAG); } + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); return nfs_ok; } @@ -687,6 +691,7 @@ nfsd4_create(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, fh_unlock(&cstate->current_fh); set_change_info(&create->cr_cinfo, &cstate->current_fh); fh_dup2(&cstate->current_fh, &resfh); + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); out: fh_put(&resfh); out_umask: @@ -751,16 +756,24 @@ static __be32 nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, union nfsd4_op_u *u) { - return nfsd4_do_lookupp(rqstp, &cstate->current_fh); + __be32 status; + + status = nfsd4_do_lookupp(rqstp, &cstate->current_fh); + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); + return status; } static __be32 nfsd4_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, union nfsd4_op_u *u) { - return nfsd_lookup(rqstp, &cstate->current_fh, - u->lookup.lo_name, u->lookup.lo_len, - &cstate->current_fh); + __be32 status; + + status = nfsd_lookup(rqstp, &cstate->current_fh, + u->lookup.lo_name, u->lookup.lo_len, + &cstate->current_fh); + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); + return status; } static __be32 @@ -928,6 +941,7 @@ nfsd4_secinfo_no_name(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstat err = nfsd4_do_lookupp(rqstp, &cstate->current_fh); if (err) return err; + trace_nfsd4_fh_current(rqstp, &cstate->current_fh); break; default: return nfserr_inval; diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index dbbc45f22a80..8da691b642ac 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -888,6 +888,36 @@ TRACE_EVENT(nfsd_cb_done, __entry->status) ); +TRACE_EVENT(nfsd4_fh_current, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct svc_fh *fhp + ), + TP_ARGS(rqstp, fhp), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, fh_hash) + __dynamic_array(unsigned char, name, + fhp->fh_dentry ? + fhp->fh_dentry->d_name.len + 1 : 0) + ), + TP_fast_assign( + const struct dentry *dentry = fhp->fh_dentry; + + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->fh_hash = knfsd_fh_hash(&fhp->fh_handle); + if (dentry) { + memcpy(__get_str(name), dentry->d_name.name, + dentry->d_name.len); + __get_str(name)[dentry->d_name.len] = '\0'; + } else { + __get_str(name)[0] = '\0'; + } + ), + TP_printk("xid=0x%08x fh_hash=0x%08x name=%s", + __entry->xid, __entry->fh_hash, __get_str(name)) +); + TRACE_EVENT(nfsd_setattr_args, TP_PROTO( const struct svc_rqst *rqstp, From patchwork Wed Sep 16 21:43:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781079 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3A0CF1709 for ; Wed, 16 Sep 2020 22:23:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1932120708 for ; Wed, 16 Sep 2020 22:23:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FWFmUKyy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726422AbgIPWXo (ORCPT ); Wed, 16 Sep 2020 18:23:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726419AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 97A31C0698C1 for ; Wed, 16 Sep 2020 14:43:24 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id u18so230641iln.13 for ; Wed, 16 Sep 2020 14:43:24 -0700 (PDT) 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=Xnim2Q4YvX+w1VQp9KT2rA97PP0KL+1kSWsKdOfhxT0=; b=FWFmUKyyaWtVku/s4VEUhxOBniwbGsEBt7B+tRlh13NYfA4M8DMGnR7HPDZMM8jfOa weEkA8nyxrNwTLyr2fyevmWNUz56BD7ukL6Mt5KO9+LwIm6kXzFRxZrcBBSVwUfiVBE/ F3+dBFQfQ5Fl7Oo05/9wV1FPbxqaSyQBueWxO++KXx9T44QkdsHeeOcQna1X5RtewERF XyX3hAi9T2vD4TL/ebl47M+NI2dnMOPpxzRWITqjqDUAE4u5iaYCVSvkJUYUrlRJfOOF qZL6Y0Tm4PRoqzNouSPhPIHpTrCR4LBejoFMSL8GVOEu9T2aQJxpx9qqx+qIXcfuW1i4 hH8A== 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=Xnim2Q4YvX+w1VQp9KT2rA97PP0KL+1kSWsKdOfhxT0=; b=A3+DB7W8JKeY5yYDN34OUZG7KKmRZxZFbnB4tQzIPQa/iX/gOEbyBrEvzBN/lJistc o2bvqaZsQKNeoirwK6BX5oMvAK+qPgvj+lo4ovVpvc0ixrXc8Iy1iYzghdftJVKbSxP/ 5mfGCTkzPZrtuujHV6revO9I22viDoVoJgnKMl0fIGM+QL+DJBH/8GgRjCyN8pzIuC5k iqI+tBnWOjX4AVGf3XM0K+qvIDlXjquzz9Myd/eXvBGJWgeOj+65y/stL31sjZ5XkrMM s+2whByCt3shHdjoUbT/1sWN3RBqa3lOUbQFM3qrkLg5mKKUcwXmP9G8z88vK+ASzXWs z4qQ== X-Gm-Message-State: AOAM5310M/whxdTTdIB4VWQFOoPKmzmAxWbLgm1HLH1zHFH2PI15tyee y1Vh+VxJN3HCR7+LWvi2mQI0gC867MI= X-Google-Smtp-Source: ABdhPJz2JLft3OZLRnTiWsKuV4uSJHzD2cADqSccOE8BfGLbo9V5XnuaG5VOMCIrc9fbQ7PxxI2l5g== X-Received: by 2002:a05:6e02:c07:: with SMTP id d7mr23495753ile.301.1600292603907; Wed, 16 Sep 2020 14:43:23 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id s2sm11854112ili.49.2020.09.16.14.43.22 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:22 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhLT7023017; Wed, 16 Sep 2020 21:43:21 GMT Subject: [PATCH RFC 13/21] NFSD: Add GETATTR tracepoint From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:21 -0400 Message-ID: <160029260189.29208.3666127728510734668.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Record the set of attributes requested by an NFSv4 client in an NFSv4 GETATTR request. nfsd-1034 [002] 164.067026: nfsd_get_fattr4: xid=0xcb4c4e33 bm[0]=TYPE|CHANGE|SIZE|FSID|FILEID bm[1]=MODE|NUMLINKS|OWNER|OWNER_GROUP|RAWDEV|SPACE_USED|TIME_ACCESS|TIME_METADATA|TIME_MODIFY|MOUNTED_ON_FILEID bm[2]= Signed-off-by: Chuck Lever --- fs/nfsd/nfs4proc.c | 2 + fs/nfsd/trace.h | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index a718097b5330..6206ba7b1ac7 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -706,6 +706,8 @@ nfsd4_getattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_getattr *getattr = &u->getattr; __be32 status; + trace_nfsd4_getattr(rqstp, getattr->ga_bmval); + status = fh_verify(rqstp, &cstate->current_fh, 0, NFSD_MAY_NOP); if (status) return status; diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 8da691b642ac..48250610dfa4 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -918,6 +918,149 @@ TRACE_EVENT(nfsd4_fh_current, __entry->xid, __entry->fh_hash, __get_str(name)) ); +/* + * from include/linux/nfs4.h + */ +#define FATTR4_WORD0_FLAGS \ + fattr4_word0_bit(SUPPORTED_ATTRS) \ + fattr4_word0_bit(TYPE) \ + fattr4_word0_bit(FH_EXPIRE_TYPE) \ + fattr4_word0_bit(CHANGE) \ + fattr4_word0_bit(SIZE) \ + fattr4_word0_bit(LINK_SUPPORT) \ + fattr4_word0_bit(SYMLINK_SUPPORT) \ + fattr4_word0_bit(NAMED_ATTR) \ + fattr4_word0_bit(FSID) \ + fattr4_word0_bit(UNIQUE_HANDLES) \ + fattr4_word0_bit(LEASE_TIME) \ + fattr4_word0_bit(RDATTR_ERROR) \ + fattr4_word0_bit(ACL) \ + fattr4_word0_bit(ACLSUPPORT) \ + fattr4_word0_bit(ARCHIVE) \ + fattr4_word0_bit(CANSETTIME) \ + fattr4_word0_bit(CASE_INSENSITIVE) \ + fattr4_word0_bit(CASE_PRESERVING) \ + fattr4_word0_bit(CHOWN_RESTRICTED) \ + fattr4_word0_bit(FILEHANDLE) \ + fattr4_word0_bit(FILEID) \ + fattr4_word0_bit(FILES_AVAIL) \ + fattr4_word0_bit(FILES_FREE) \ + fattr4_word0_bit(FILES_TOTAL) \ + fattr4_word0_bit(FS_LOCATIONS) \ + fattr4_word0_bit(HIDDEN) \ + fattr4_word0_bit(HOMOGENEOUS) \ + fattr4_word0_bit(MAXFILESIZE) \ + fattr4_word0_bit(MAXLINK) \ + fattr4_word0_bit(MAXNAME) \ + fattr4_word0_bit(MAXREAD) \ + fattr4_word0_bit_end(MAXWRITE) + +#undef fattr4_word0_bit +#undef fattr4_word0_bit_end +#define fattr4_word0_bit(x) TRACE_DEFINE_ENUM(FATTR4_WORD0_##x); +#define fattr4_word0_bit_end(x) TRACE_DEFINE_ENUM(FATTR4_WORD0_##x); + +FATTR4_WORD0_FLAGS + +#undef fattr4_word0_bit +#undef fattr4_word0_bit_end +#define fattr4_word0_bit(x) { FATTR4_WORD0_##x, #x }, +#define fattr4_word0_bit_end(x) { FATTR4_WORD0_##x, #x } + +#define show_fattr4_bm_word0(x) __print_flags(x, "|", FATTR4_WORD0_FLAGS) + +#define FATTR4_WORD1_FLAGS \ + fattr4_word1_bit(MIMETYPE) \ + fattr4_word1_bit(MODE) \ + fattr4_word1_bit(NO_TRUNC) \ + fattr4_word1_bit(NUMLINKS) \ + fattr4_word1_bit(OWNER) \ + fattr4_word1_bit(OWNER_GROUP) \ + fattr4_word1_bit(QUOTA_HARD) \ + fattr4_word1_bit(QUOTA_SOFT) \ + fattr4_word1_bit(QUOTA_USED) \ + fattr4_word1_bit(RAWDEV) \ + fattr4_word1_bit(SPACE_AVAIL) \ + fattr4_word1_bit(SPACE_FREE) \ + fattr4_word1_bit(SPACE_TOTAL) \ + fattr4_word1_bit(SPACE_USED) \ + fattr4_word1_bit(SYSTEM) \ + fattr4_word1_bit(TIME_ACCESS) \ + fattr4_word1_bit(TIME_ACCESS_SET) \ + fattr4_word1_bit(TIME_BACKUP) \ + fattr4_word1_bit(TIME_CREATE) \ + fattr4_word1_bit(TIME_DELTA) \ + fattr4_word1_bit(TIME_METADATA) \ + fattr4_word1_bit(TIME_MODIFY) \ + fattr4_word1_bit(TIME_MODIFY_SET) \ + fattr4_word1_bit(MOUNTED_ON_FILEID) \ + fattr4_word1_bit_end(FS_LAYOUT_TYPES) + +#undef fattr4_word1_bit +#undef fattr4_word1_bit_end +#define fattr4_word1_bit(x) TRACE_DEFINE_ENUM(FATTR4_WORD1_##x); +#define fattr4_word1_bit_end(x) TRACE_DEFINE_ENUM(FATTR4_WORD1_##x); + +FATTR4_WORD1_FLAGS + +#undef fattr4_word1_bit +#undef fattr4_word1_bit_end +#define fattr4_word1_bit(x) { FATTR4_WORD1_##x, #x }, +#define fattr4_word1_bit_end(x) { FATTR4_WORD1_##x, #x } + +#define show_fattr4_bm_word1(x) __print_flags(x, "|", FATTR4_WORD1_FLAGS) + +#define FATTR4_WORD2_FLAGS \ + fattr4_word2_bit(LAYOUT_TYPES) \ + fattr4_word2_bit(LAYOUT_BLKSIZE) \ + fattr4_word2_bit(MDSTHRESHOLD) \ + fattr4_word2_bit(SUPPATTR_EXCLCREAT) \ + fattr4_word2_bit(CLONE_BLKSIZE) \ + fattr4_word2_bit(CHANGE_ATTR_TYPE) \ + fattr4_word2_bit(SECURITY_LABEL) \ + fattr4_word2_bit(MODE_UMASK) \ + fattr4_word2_bit_end(XATTR_SUPPORT) + +#undef fattr4_word2_bit +#undef fattr4_word2_bit_end +#define fattr4_word2_bit(x) TRACE_DEFINE_ENUM(FATTR4_WORD2_##x); +#define fattr4_word2_bit_end(x) TRACE_DEFINE_ENUM(FATTR4_WORD2_##x); + +FATTR4_WORD2_FLAGS + +#undef fattr4_word2_bit +#undef fattr4_word2_bit_end +#define fattr4_word2_bit(x) { FATTR4_WORD2_##x, #x }, +#define fattr4_word2_bit_end(x) { FATTR4_WORD2_##x, #x } + +#define show_fattr4_bm_word2(x) __print_flags(x, "|", FATTR4_WORD2_FLAGS) + +TRACE_EVENT(nfsd4_getattr, + TP_PROTO( + const struct svc_rqst *rqstp, + const u32 *bitmask + ), + TP_ARGS(rqstp, bitmask), + TP_STRUCT__entry( + __field(u32, xid) + __field(unsigned long, bm0) + __field(unsigned long, bm1) + __field(unsigned long, bm2) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->bm0 = bitmask[0]; + __entry->bm1 = bitmask[1]; + __entry->bm2 = bitmask[2]; + ), + TP_printk("xid=0x%08x bm[0]=%s bm[1]=%s bm[2]=%s", + __entry->xid, + show_fattr4_bm_word0(__entry->bm0), + show_fattr4_bm_word1(__entry->bm1), + show_fattr4_bm_word2(__entry->bm2) + ) +); + TRACE_EVENT(nfsd_setattr_args, TP_PROTO( const struct svc_rqst *rqstp, From patchwork Wed Sep 16 21:43:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781065 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 32A7C59D for ; Wed, 16 Sep 2020 22:23:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1285220732 for ; Wed, 16 Sep 2020 22:23:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CJ57SZmb" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726548AbgIPWX1 (ORCPT ); Wed, 16 Sep 2020 18:23:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50390 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726515AbgIPWXE (ORCPT ); Wed, 16 Sep 2020 18:23:04 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77A8BC0698C2 for ; Wed, 16 Sep 2020 14:43:29 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id a19so250432ilq.10 for ; Wed, 16 Sep 2020 14:43:29 -0700 (PDT) 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=EeKEBXZoBdpAlvinxANCPZH00J7GsT/y+yHphwVOXFQ=; b=CJ57SZmbvt9QP+8+menJSL8v6Pf1efFk5G/EjKkUlacslbWM7YfrXgJvYOhUVMyHT6 EA6w/aPRRzf0em2Px4S4BSMSpwOKFhtQaWP+8+1VeLuOpBzGmh+Q24CnULi0/1RVvI9k QnpKOcyR3x3fiTgMAXJSmjr20YXV9Mb1lQ2zqXxcrYpucvuBGrBIjUGrvXhkvPrYXtZ4 jUDyJ0XJZBGvf8YjdmxQ6VjcuS3pzyJySaadOo5TwOV/TLu+Ma4+huFkprqbU9VKmBEb K3IIonzgYpXZhMtyWntzTk1ghcQQfrFmeGohJfp3V51xpN03DEC7/QLC9jymxbWJMrZE 2H1w== 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=EeKEBXZoBdpAlvinxANCPZH00J7GsT/y+yHphwVOXFQ=; b=k4jTsWdnFE1wCskjE8SiG+wZrDKdHz2HXCPXn+IsnDckx427jh8Z+pxdmHBJpuWI0g ivaEN6rITRGd5Ulwxpuzb5SSICrtPUKR4Iz653PU/9Z+e4CpHU/yglzgK6L67rd25NXo re5gIQP40sNmpEIBIPqwgaYsRFwcrPSXawMQLnECLC8D+8jxDeiOJKp2yJv8if8QNOxK glvuIsDelwlJRiqqYFckBjmzqRcdx3OpsDbis6GK32senz8JLHfONLRrNksWdxHS2lwx NAAF+oMz1Y+ACytJWtYk8bgpNbCYeQMN4znQd2hniKgnxWz4H1uAQwFAoQzrbaS73ayl tUGg== X-Gm-Message-State: AOAM532tBa4M/Ib9mX9lnsCZRhAfoU2YWse50yMxPj/OxdZmcLp929eW 0XWDwGP0xsB9UK19BELEeQ4= X-Google-Smtp-Source: ABdhPJya9qLP66DK0uhckyLj4RpRYB8kSVeJPg8yyKx566/MNXFb/U31iFKuM6r11pKMq+xfZH8FmQ== X-Received: by 2002:a92:2001:: with SMTP id j1mr20109612ile.56.1600292608827; Wed, 16 Sep 2020 14:43:28 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id k11sm9932082iof.40.2020.09.16.14.43.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:28 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhRdo023020; Wed, 16 Sep 2020 21:43:27 GMT Subject: [PATCH RFC 14/21] NFSD: Add tracepoint in nfsd4_stateid_preprocess() From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:27 -0400 Message-ID: <160029260719.29208.4903056291857984843.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Record the stateid being processed by each COMPOUND. nfsd-1033 [003] 165.199589: nfsd_stateid_prep: xid=0xeb2d9610 client 5f4fdc70:dbdb3569 stateid 00000001:00000002 status=0 Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 24 ++++++++++++++---------- fs/nfsd/trace.h | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index f101202ed536..0cc928328c22 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -5881,12 +5881,14 @@ nfs4_preprocess_stateid_op(struct svc_rqst *rqstp, if (nfp) *nfp = NULL; - if (grace_disallows_io(net, ino)) - return nfserr_grace; + if (grace_disallows_io(net, ino)) { + status = nfserr_grace; + goto out; + } if (ZERO_STATEID(stateid) || ONE_STATEID(stateid)) { status = check_special_stateids(net, fhp, stateid, flags); - goto done; + goto out_check; } status = nfsd4_lookup_stateid(cstate, stateid, @@ -5895,11 +5897,11 @@ nfs4_preprocess_stateid_op(struct svc_rqst *rqstp, if (status == nfserr_bad_stateid) status = find_cpntf_state(nn, stateid, &s); if (status) - return status; + goto out; status = nfsd4_stid_check_stateid_generation(stateid, s, nfsd4_has_session(cstate)); if (status) - goto out; + goto out_put; switch (s->sc_type) { case NFS4_DELEG_STID: @@ -5914,19 +5916,21 @@ nfs4_preprocess_stateid_op(struct svc_rqst *rqstp, break; } if (status) - goto out; + goto out_put; status = nfs4_check_fh(fhp, s); -done: +out_check: if (status == nfs_ok && nfp) status = nfs4_check_file(rqstp, fhp, s, nfp, flags); -out: +out_put: if (s) { if (!status && cstid) *cstid = s; else nfs4_put_stid(s); } +out: + trace_nfsd4_stateid_prep(rqstp, stateid, status); return status; } @@ -6066,7 +6070,7 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid, struct nfs4_stid *s; struct nfs4_ol_stateid *stp = NULL; - trace_nfsd_preprocess(seqid, stateid); + trace_nfsd4_seqid_prep(seqid, stateid); *stpp = NULL; status = nfsd4_lookup_stateid(cstate, stateid, typemask, &s, nn); @@ -6135,7 +6139,7 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, oo->oo_flags |= NFS4_OO_CONFIRMED; nfs4_inc_and_copy_stateid(&oc->oc_resp_stateid, &stp->st_stid); mutex_unlock(&stp->st_mutex); - trace_nfsd_open_confirm(oc->oc_seqid, &stp->st_stid.sc_stateid); + trace_nfsd4_open_confirm(oc->oc_seqid, &stp->st_stid.sc_stateid); nfsd4_client_record_create(oo->oo_owner.so_client); status = nfs_ok; put_stateid: diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 48250610dfa4..fc58e1a3ef60 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -349,6 +349,35 @@ DEFINE_NFSD_ERR_EVENT(write_err); #include "filecache.h" #include "vfs.h" +TRACE_EVENT(nfsd4_stateid_prep, + TP_PROTO( + const struct svc_rqst *rqstp, + const stateid_t *stp, + __be32 status + ), + TP_ARGS(rqstp, stp, status), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, cl_boot) + __field(u32, cl_id) + __field(u32, si_id) + __field(u32, si_generation) + __field(int, status) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->cl_boot = stp->si_opaque.so_clid.cl_boot; + __entry->cl_id = stp->si_opaque.so_clid.cl_id; + __entry->si_id = stp->si_opaque.so_id; + __entry->si_generation = stp->si_generation; + __entry->status = be32_to_cpu(status); + ), + TP_printk("xid=0x%08x client %08x:%08x stateid %08x:%08x status=%d", + __entry->xid, __entry->cl_boot, __entry->cl_id, + __entry->si_id, __entry->si_generation, __entry->status + ) +); + DECLARE_EVENT_CLASS(nfsd_stateid_class, TP_PROTO(stateid_t *stp), TP_ARGS(stp), @@ -415,11 +444,11 @@ DECLARE_EVENT_CLASS(nfsd_stateseqid_class, ) #define DEFINE_STATESEQID_EVENT(name) \ -DEFINE_EVENT(nfsd_stateseqid_class, nfsd_##name, \ +DEFINE_EVENT(nfsd_stateseqid_class, nfsd4_##name, \ TP_PROTO(u32 seqid, const stateid_t *stp), \ TP_ARGS(seqid, stp)) -DEFINE_STATESEQID_EVENT(preprocess); +DEFINE_STATESEQID_EVENT(seqid_prep); DEFINE_STATESEQID_EVENT(open_confirm); DECLARE_EVENT_CLASS(nfsd_clientid_class, From patchwork Wed Sep 16 21:43:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781061 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BCC6B139F for ; Wed, 16 Sep 2020 22:23:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9832B20732 for ; Wed, 16 Sep 2020 22:23:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pVhqoyt+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726247AbgIPWXQ (ORCPT ); Wed, 16 Sep 2020 18:23:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726455AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDBD5C0698C3 for ; Wed, 16 Sep 2020 14:43:34 -0700 (PDT) Received: by mail-io1-xd44.google.com with SMTP id h4so10012005ioe.5 for ; Wed, 16 Sep 2020 14:43:34 -0700 (PDT) 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=k47llWLEAthA+rnG5/+vtNqdOypblNpTxXEWYiL8xj0=; b=pVhqoyt+3Yldm8S5QMrIwip3n0HcepD4Wo+c8o+CRK/xKjFqFNnreV1TUbAo9oGxZ2 G/03Etj20dx+fUAhpsvwSDsuXH6B52IeVdKdPVIh5Xrbi2CLcwkky9L2SIeLimrGSSO3 +5c4LVmR5CYnQ14EgG3KV/EqtV4jKm8GarZ5+df4uOAg0C/gbd2kn/NW5CvgpdmxR3Pb oyT/i2W+9Jfin2isdy4uhb1Vo1MMieiSTSvIW4JsQ8GPvrjnRqihxMFEZY7vOZ3g9lla nHySGp3FRDYgIy/DNsecf7Q73QLqii4qNFf95X+oaYoYhUKbK+lY5yzCXxJHYhbaksGT AFEg== 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=k47llWLEAthA+rnG5/+vtNqdOypblNpTxXEWYiL8xj0=; b=SS1QBvI3qndz0kQ8FlC1rqQNmkHbQ2mT6camofBIP7p6n7IpVn7B1kgqzPH1tcaHB+ 10OdEzvPreqv4cOf/7QVMu1mkmHNc9lov79wjiIm/6bRL9LrX8f4Rhor9w9Nhv6QRGRC AAImNGdlXVOsqv2rYDlti0CZ102JI44KE/+t07z1FtkfegzzS7LHaWeL5SDKn17j+UrN ftKnESk5Je0wnYXJsu7seADzv1DjS9B0z3aZ2EW1JAk8gQ3N3WrMTsv44TbtqFLS1OVN URUe5KylXA8IgB/YJm8VYRykSv3f4807SrAVwk7cM/NrcK5Ma6gqnkp1yC5K/u1rr/U6 mYjg== X-Gm-Message-State: AOAM531Vcu4dDflJKB2MLSlRBFmxtKV8pi4xvgGdT+tBLkmbS/LlodTq Led3uLcIL+l7Z8wup3VFwOzZ8uhz+cI= X-Google-Smtp-Source: ABdhPJwlFs5uzhRZGhuGCDeRd4PMZUo9Ew+qrBMw2maj1f87mEcCyaVqBUVS2AvjJvCjuTrp7ga5pg== X-Received: by 2002:a6b:8ed2:: with SMTP id q201mr7881590iod.61.1600292614213; Wed, 16 Sep 2020 14:43:34 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id o89sm10578039ili.51.2020.09.16.14.43.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:33 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhWol023023; Wed, 16 Sep 2020 21:43:32 GMT Subject: [PATCH RFC 15/21] NFSD: Add tracepoint to report arguments to NFSv4 OPEN From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:32 -0400 Message-ID: <160029261250.29208.13662626992884110140.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Surface the open create type and claim type, as well as the XID and the file handle and open sequence number. nfsd-1025 [001] 257.085227: nfsd_open_args: xid=0x08157d7a fh_hash=0x1ac91976 seqid=97 type=CREATE claim=NULL Signed-off-by: Chuck Lever --- fs/nfsd/nfs4proc.c | 4 +- fs/nfsd/nfs4state.c | 3 +- fs/nfsd/trace.h | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 5 deletions(-) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 6206ba7b1ac7..da94d769ed0a 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -358,9 +358,7 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd_net *nn = net_generic(net, nfsd_net_id); bool reclaim = false; - dprintk("NFSD: nfsd4_open filename %.*s op_openowner %p\n", - (int)open->op_fname.len, open->op_fname.data, - open->op_openowner); + trace_nfsd4_open(rqstp, open); /* This check required by spec. */ if (open->op_create && open->op_claim_type != NFS4_OPEN_CLAIM_NULL) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 0cc928328c22..47790c7a29a3 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -6184,8 +6184,7 @@ nfsd4_open_downgrade(struct svc_rqst *rqstp, struct nfs4_ol_stateid *stp; struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); - dprintk("NFSD: nfsd4_open_downgrade on file %pd\n", - cstate->current_fh.fh_dentry); + trace_nfsd4_open_downgrade(rqstp, od); /* We don't yet support WANT bits: */ if (od->od_deleg_want) diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index fc58e1a3ef60..3c587d5076f7 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -348,6 +348,107 @@ DEFINE_NFSD_ERR_EVENT(write_err); #include "state.h" #include "filecache.h" #include "vfs.h" +#include "xdr4.h" + +TRACE_DEFINE_ENUM(NFS4_OPEN_NOCREATE); +TRACE_DEFINE_ENUM(NFS4_OPEN_CREATE); + +#define show_open_create(x) \ + __print_symbolic(x, \ + { NFS4_OPEN_NOCREATE, "NOCREATE" }, \ + { NFS4_OPEN_CREATE, "CREATE" }) + +#define OPEN_CLAIM_TYPE_LIST \ + open_claim_type(NULL) \ + open_claim_type(DELEGATE_PREV) \ + open_claim_type(PREVIOUS) \ + open_claim_type(DELEGATE_CUR) \ + open_claim_type(FH) \ + open_claim_type(DELEG_PREV_FH) \ + open_claim_type_end(DELEG_CUR_FH) + +#undef open_claim_type +#undef open_claim_type_end +#define open_claim_type(x) TRACE_DEFINE_ENUM(NFS4_OPEN_CLAIM_##x); +#define open_claim_type_end(x) TRACE_DEFINE_ENUM(NFS4_OPEN_CLAIM_##x); + +OPEN_CLAIM_TYPE_LIST + +#undef open_claim_type +#undef open_claim_type_end +#define open_claim_type(x) { NFS4_OPEN_CLAIM_##x, #x }, +#define open_claim_type_end(x) { NFS4_OPEN_CLAIM_##x, #x } + +#define show_open_claimtype(x) \ + __print_symbolic(x, OPEN_CLAIM_TYPE_LIST) + +/* + * from include/linux/nfs4.h + */ +TRACE_DEFINE_ENUM(NFS4_SHARE_ACCESS_READ); +TRACE_DEFINE_ENUM(NFS4_SHARE_ACCESS_WRITE); +TRACE_DEFINE_ENUM(NFS4_SHARE_ACCESS_BOTH); + +#define show_open_sharedeny_flags(x) \ + __print_symbolic(x, \ + { NFS4_SHARE_ACCESS_READ, "READ" }, \ + { NFS4_SHARE_ACCESS_WRITE, "WRITE" }, \ + { NFS4_SHARE_ACCESS_BOTH, "BOTH" }) + +TRACE_EVENT(nfsd4_open, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_open *open + ), + TP_ARGS(rqstp, open), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, seqid) + __field(unsigned long, create) + __field(unsigned long, claim) + __field(unsigned long, share) + __dynamic_array(unsigned char, name, open->op_fname.len + 1) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->seqid = open->op_seqid; + __entry->create = open->op_create; + __entry->claim = open->op_claim_type; + __entry->share = open->op_share_access; + memcpy(__get_str(name), open->op_fname.data, + open->op_fname.len); + __get_str(name)[open->op_fname.len] = '\0'; + ), + TP_printk("xid=0x%08x seqid=%u type=%s claim=%s share=%s name=%s", + __entry->xid, __entry->seqid, + show_open_create(__entry->create), + show_open_claimtype(__entry->claim), + show_open_sharedeny_flags(__entry->share), + __get_str(name) + ) +); + +TRACE_EVENT(nfsd4_open_downgrade, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_open_downgrade *open + ), + TP_ARGS(rqstp, open), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, seqid) + __field(unsigned long, share) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->seqid = open->od_seqid; + __entry->share = open->od_share_access; + ), + TP_printk("xid=0x%08x seqid=%u share=%s", + __entry->xid, __entry->seqid, + show_open_sharedeny_flags(__entry->share) + ) +); TRACE_EVENT(nfsd4_stateid_prep, TP_PROTO( From patchwork Wed Sep 16 21:43:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781075 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F1FE159D for ; Wed, 16 Sep 2020 22:23:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D67D521941 for ; Wed, 16 Sep 2020 22:23:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ej3SV/Ew" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726187AbgIPWXZ (ORCPT ); Wed, 16 Sep 2020 18:23:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726533AbgIPWXF (ORCPT ); Wed, 16 Sep 2020 18:23:05 -0400 Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BDA36C0698C4 for ; Wed, 16 Sep 2020 14:43:39 -0700 (PDT) Received: by mail-il1-x143.google.com with SMTP id q4so281552ils.4 for ; Wed, 16 Sep 2020 14:43:39 -0700 (PDT) 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=YVe7K407MPmMCUFBdDJOKKyhj4+ELuRupMkeZa5wOGA=; b=Ej3SV/EwGejCfJqZ0uUGrQytMLkiawURztJgXHfZQuq060jYdD0MC44LIgYF7cFMcA w8zVzaMHeiTQjPW/6/x6pUQF4CZp3DBh+RCFSst05RaemGDVaSHqb1toCvnuInNOtkz3 Rl+cy9QiK6wm3++qrX81PFFfVaiJFdbiHqcUIk2uSAIHB9UwqzBYxMZmtxew6yEIS6IQ PwAYBn4f01np7Ze9G+f7v9b5Sv9jh6chquf2cAWZkVcDpMCGf2teBIx4jRC0v/CIaa9H pGYkOMko3SobKBhCeDZ0qYBHxyuN+PZPLJNdIvFF1S0iOtIp+qjvv/lwS13KDT3e7Fnw 7vBA== 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=YVe7K407MPmMCUFBdDJOKKyhj4+ELuRupMkeZa5wOGA=; b=Uxcst0z/n+Aeecu/5NbqAgNY9dtExnqLnNo5IsaJAwb28VL8AotLOz4BECzhpndipb tjPUxE/qzusBbj1aGOaA5aMvstOphVdJIHsy814ieggsywINPNRTDKGEZpnORE4sx9Gh lXVURtISPSLwxiDANthTtnOXNEFQYoPyLhdJ1SVPlP9QvddRAKqKQA9b6snG/mo3N7h8 6Y/qw3vcZNiH32sMcWykrsrdBHvsyOMeecKimLqr2UVKWhCTlZcfEtT2av5YYT4jUzHj O5k/DETIwhHTIGVXr6Nr0Y2+0MlIHEgPzAyzo2N2/c378HkoAvMBzCAVpj4hbn13IYTz m1nA== X-Gm-Message-State: AOAM53062EReVWhWzjStvzyI4xt/0EbFUxH2LV8eZ0OK3gGnQuJVkY7R j2vaUQB/IngWfsVtVFHUm8TVfR/1BKI= X-Google-Smtp-Source: ABdhPJzKCSKsgbAfSPhVRhvu9CVyhV1navsXDmPOzoXcY/NHNpEjMredI0MfSJR3WV3EqwBap7BAUQ== X-Received: by 2002:a92:9fcc:: with SMTP id z73mr15884827ilk.234.1600292619174; Wed, 16 Sep 2020 14:43:39 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id u15sm9770592ior.6.2020.09.16.14.43.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:38 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhbim023026; Wed, 16 Sep 2020 21:43:37 GMT Subject: [PATCH RFC 16/21] NFSD: Add CLOSE tracepoint From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:37 -0400 Message-ID: <160029261781.29208.12239350175590800182.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Record the state ID being closed. Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 3 +-- fs/nfsd/trace.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 47790c7a29a3..6509e431ddd2 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -6253,8 +6253,7 @@ nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct net *net = SVC_NET(rqstp); struct nfsd_net *nn = net_generic(net, nfsd_net_id); - dprintk("NFSD: nfsd4_close on file %pd\n", - cstate->current_fh.fh_dentry); + trace_nfsd4_close(rqstp, close); status = nfs4_preprocess_seqid_op(cstate, close->cl_seqid, &close->cl_stateid, diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 3c587d5076f7..cf350f37ddc9 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -450,6 +450,37 @@ TRACE_EVENT(nfsd4_open_downgrade, ) ); +TRACE_EVENT(nfsd4_close, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_close *close + ), + TP_ARGS(rqstp, close), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, seqid) + __field(u32, cl_boot) + __field(u32, cl_id) + __field(u32, si_id) + __field(u32, si_generation) + ), + TP_fast_assign( + const stateid_t *stp = &close->cl_stateid; + + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->seqid = close->cl_seqid; + __entry->cl_boot = stp->si_opaque.so_clid.cl_boot; + __entry->cl_id = stp->si_opaque.so_clid.cl_id; + __entry->si_id = stp->si_opaque.so_id; + __entry->si_generation = stp->si_generation; + ), + TP_printk("xid=0x%08x seqid=%u client %08x:%08x stateid %08x:%08x", + __entry->xid, __entry->seqid, + __entry->cl_boot, __entry->cl_id, + __entry->si_id, __entry->si_generation + ) +); + TRACE_EVENT(nfsd4_stateid_prep, TP_PROTO( const struct svc_rqst *rqstp, From patchwork Wed Sep 16 21:43:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781077 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BA67759D for ; Wed, 16 Sep 2020 22:23:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 98A5D20708 for ; Wed, 16 Sep 2020 22:23:45 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OAfX81Ov" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726509AbgIPWXm (ORCPT ); Wed, 16 Sep 2020 18:23:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50370 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726422AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-io1-xd42.google.com (mail-io1-xd42.google.com [IPv6:2607:f8b0:4864:20::d42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 24E71C0698C5 for ; Wed, 16 Sep 2020 14:43:45 -0700 (PDT) Received: by mail-io1-xd42.google.com with SMTP id r9so10035992ioa.2 for ; Wed, 16 Sep 2020 14:43:45 -0700 (PDT) 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=SEdv98P4dQK4v8q+wkvO0PirXXKU/LDrQFCsi8Hrx4U=; b=OAfX81Ovi3zeshRSSgEMw9GcwFGBERx4+fD1R0dwEMIphpv8ZaJ10dIykMSd8XwCl1 QkwwPVjO5SQWyiyhpmI3DAb1oAFqNMfr9nrkiqhBZ6f/GmyroH6mli5r8HXeMu8G7YIP ELY+g8ABveqqNuYNDq0eR7lx86h+qySuxhnR8AVd5QxL+u7rKJL/kiGT8srcGXS5G3K/ AYW7Cfk6x3uE8p2GzaDo+PU4+Chlm3uI8iGasaY2GZerr8T0sbnH9dHcenrU5qQ4qT0S j2O+jJKEiKQdBprNmnc3ENJ+WHbBtAmescV+veJYuQyClY+BK8BRDa0dnLud7pkRdJsF 7pgw== 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=SEdv98P4dQK4v8q+wkvO0PirXXKU/LDrQFCsi8Hrx4U=; b=ZLpRCw/eq0Mqj4N/Eij6mUQzWd5q2HCgS5zFjdqdE359CI/twN1vLGLgdDsxCMewqW RulONWt8cbo9+7Rh35NUF012cDV5EzcjxwRh/mjj0nIyQeHKSdgoaT7TOYwukf+yHm0w fqSGtG+kSP9b/ZuN4PDFMX1jtWqrp9gySo+O4u5nOjEzDSl2aLzV1zX7ZhDFX3fpGJ97 s/qZaVD8WvMTSQS468P/6GLcWqttyI84uzI799fftWbFZ12yb6RCmtcwUnnWWb+9AqZ/ 1AXwvFqiTDx+cgUpdJtOrnR8VfTWalw2/AzBQVJY6OnQKNu2r5gFUD+xXNMEtRw1BPnp wLiw== X-Gm-Message-State: AOAM532TdLWI/S80syFmWOVf+NMcr0hHURZaur6t01pSJVsxZf+r5cMm ysEuuVTpa3B7ITqAfUJTvUvDkRa2iYQ= X-Google-Smtp-Source: ABdhPJzCBPBnz3GzVbzL20AY3rPTxTcpvseaLafACRnv4PehSLWM78F9NZrVaUHdR/boPmB5ynwU8w== X-Received: by 2002:a5e:9916:: with SMTP id t22mr20922646ioj.163.1600292624546; Wed, 16 Sep 2020 14:43:44 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id h184sm9746225ioa.34.2020.09.16.14.43.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:43 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhgoQ023029; Wed, 16 Sep 2020 21:43:42 GMT Subject: [PATCH RFC 17/21] NFSD: Add a tracepoint for DELEGRETURN From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:42 -0400 Message-ID: <160029262289.29208.7879301642908653952.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Record the stateid being returned to help troubleshoot problems with delegation. The status code is reported by the nfsd_compound_status tracepoint. Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 2 ++ fs/nfsd/trace.h | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 6509e431ddd2..8444e8b51fa8 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -6302,6 +6302,8 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, __be32 status; struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); + trace_nfsd4_delegreturn(rqstp, stateid); + if ((status = fh_verify(rqstp, &cstate->current_fh, S_IFREG, 0))) return status; diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index cf350f37ddc9..2e4697324aa8 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -510,6 +510,32 @@ TRACE_EVENT(nfsd4_stateid_prep, ) ); +TRACE_EVENT(nfsd4_delegreturn, + TP_PROTO( + const struct svc_rqst *rqstp, + const stateid_t *stp + ), + TP_ARGS(rqstp, stp), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, cl_boot) + __field(u32, cl_id) + __field(u32, si_id) + __field(u32, si_generation) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->cl_boot = stp->si_opaque.so_clid.cl_boot; + __entry->cl_id = stp->si_opaque.so_clid.cl_id; + __entry->si_id = stp->si_opaque.so_id; + __entry->si_generation = stp->si_generation; + ), + TP_printk("xid=0x%08x client %08x:%08x stateid %08x:%08x", + __entry->xid, __entry->cl_boot, __entry->cl_id, + __entry->si_id, __entry->si_generation + ) +); + DECLARE_EVENT_CLASS(nfsd_stateid_class, TP_PROTO(stateid_t *stp), TP_ARGS(stp), From patchwork Wed Sep 16 21:43:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781067 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D92E1618 for ; Wed, 16 Sep 2020 22:23:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A3B8F20732 for ; Wed, 16 Sep 2020 22:23:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="leGuhH2X" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726515AbgIPWX3 (ORCPT ); Wed, 16 Sep 2020 18:23:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726520AbgIPWXE (ORCPT ); Wed, 16 Sep 2020 18:23:04 -0400 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C446C0698C6 for ; Wed, 16 Sep 2020 14:43:50 -0700 (PDT) Received: by mail-io1-xd44.google.com with SMTP id j2so9990722ioj.7 for ; Wed, 16 Sep 2020 14:43:50 -0700 (PDT) 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=2dJl7PpUun3XU1atrcqAO6drLpoH7bw0Ab0zArC7J0M=; b=leGuhH2XhYfu2iyY6v+MnNQvlz62GCIwUWJpopH/0lHxHyAf4bVrIUSQNDObOdUuP+ fjbp4TT+xytm0uOnj2BjUXOMdHX5xMupM092agzhraCaedd1hsw0FBqAOuxiWnL+nppn VqS1Qp/T5rz6/Gs7ukML4w9VMriQeoVUIQOrQV9oI+pLMDAAAABQlE0EKX6LglfB1QWR Zh9rnONfu0vlpsXAvBysnCa/ksl2pRWYq7rlXZMLhp68ZgaxEtowlsfjCJCWfbTAbJFc Nw1UZMZrS7VqR/2eFaZvmhF1JEuJ6n1JeK36ofe9ASvA5iPv/Nq8PTgPq0Gk14J0Qdv6 AbIA== 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=2dJl7PpUun3XU1atrcqAO6drLpoH7bw0Ab0zArC7J0M=; b=TuSgC9NNzdxSci4avmGgLFNvhV4Ur2S2XyaAYD8abv9Wy19BvvdZJY2WoK7WFtxMQS DMmJGANNVBBFG5m2O9iwQ0yBskwmsysxmUnncSjTO5MpzDWEUI+4b+jP82CEP+seM43W j9es2g3Gt5dgknE184gYVg9coLv/CXSSqke2XfIwUkfFH4AouvDdLfGXl8RRWOLLuQ6n 80abTL6gLAzmy/pEYDEszXU8tMgNscD4rP6ukXsW7FLAnUr44cCKBwHpjYWr2AmbccAH 6h22RrVRlq0/nDPTgjpWvbGB2iiafoVXMyRP7FUqyuspSPtetUPBOPHX03SuMRK8dVqM 6VzQ== X-Gm-Message-State: AOAM532OCm4escCJhc6peKie0J0aRxJdTdGTi1lInZ4PZRZOEOt3tDSI Qmixlgwqu6XRnFrvuxHL++E= X-Google-Smtp-Source: ABdhPJwB9/Xm/L/79FyBhgKVMw9dFLAWs32wPI+8F8ygAPgT33tbla6Wy1iPoE/z4TISLgQmPcpeIw== X-Received: by 2002:a05:6638:1607:: with SMTP id x7mr23620779jas.109.1600292629843; Wed, 16 Sep 2020 14:43:49 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id k1sm11327187ilq.59.2020.09.16.14.43.48 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:49 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhmk6023032; Wed, 16 Sep 2020 21:43:48 GMT Subject: [PATCH RFC 18/21] NFSD: Add a lookup tracepoint From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:48 -0400 Message-ID: <160029262819.29208.17665617722550630287.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Unfortunately, some callers pass the same memory as the input and result FH argument. This means we can't capture both and the status code with a single tracepoint. The status code is recorded by other existing tracepoints (for example in the SVC layer). Also note that RFC 5661 S. 18.13.3 explicitly states that: "if the object exists, the current filehandle is replaced with the component’s filehandle... " otherwise "... an error will be returned and the current filehandle will be unchanged." Given that nfsd4_lookup() passes &cstate->current_fh as both the input and output arguement, the current filehandle is set even in the error case. This is probably not behaviorally consequential because COMPOUND processing stops as soon as an operation fails, but it is not compliant with the spec language. Signed-off-by: Chuck Lever --- fs/nfsd/nfs3proc.c | 3 +++ fs/nfsd/nfs4proc.c | 1 + fs/nfsd/nfsproc.c | 3 +++ fs/nfsd/trace.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/vfs.c | 18 +++++++++++++---- 5 files changed, 77 insertions(+), 4 deletions(-) diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 288bc76b4574..e2420d9f5db9 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c @@ -12,6 +12,7 @@ #include "cache.h" #include "xdr3.h" #include "vfs.h" +#include "trace.h" #define NFSDDBG_FACILITY NFSDDBG_PROC @@ -102,6 +103,8 @@ nfsd3_proc_lookup(struct svc_rqst *rqstp) argp->name, argp->len, &resp->fh); + trace_nfsd_lookup(rqstp, &resp->dirfh, argp->name, argp->len, + &resp->fh, nfserr); RETURN_STATUS(nfserr); } diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index da94d769ed0a..379077254f9a 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -772,6 +772,7 @@ nfsd4_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, status = nfsd_lookup(rqstp, &cstate->current_fh, u->lookup.lo_name, u->lookup.lo_len, &cstate->current_fh); + trace_nfsd4_lookup(rqstp, u->lookup.lo_name, u->lookup.lo_len, status); trace_nfsd4_fh_current(rqstp, &cstate->current_fh); return status; } diff --git a/fs/nfsd/nfsproc.c b/fs/nfsd/nfsproc.c index 6e0b066480c5..c822ee2ef8ae 100644 --- a/fs/nfsd/nfsproc.c +++ b/fs/nfsd/nfsproc.c @@ -10,6 +10,7 @@ #include "cache.h" #include "xdr.h" #include "vfs.h" +#include "trace.h" typedef struct svc_rqst svc_rqst; typedef struct svc_buf svc_buf; @@ -137,6 +138,8 @@ nfsd_proc_lookup(struct svc_rqst *rqstp) fh_init(&resp->fh, NFS_FHSIZE); nfserr = nfsd_lookup(rqstp, &argp->fh, argp->name, argp->len, &resp->fh); + trace_nfsd_lookup(rqstp, &argp->fh, argp->name, argp->len, + &resp->fh, nfserr); fh_put(&argp->fh); return nfsd_return_dirop(nfserr, resp); diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 2e4697324aa8..fd212fc1fd2a 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -1105,6 +1105,62 @@ TRACE_EVENT(nfsd4_fh_current, __entry->xid, __entry->fh_hash, __get_str(name)) ); +TRACE_EVENT(nfsd_lookup, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct svc_fh *parent, + const char *name, + unsigned int namelen, + const struct svc_fh *result, + __be32 status + ), + TP_ARGS(rqstp, parent, name, namelen, result, status), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, parent) + __field(u32, result) + __field(int, status) + __dynamic_array(unsigned char, name, namelen + 1) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->parent = knfsd_fh_hash(&parent->fh_handle); + __entry->result = (status == nfs_ok) ? + knfsd_fh_hash(&result->fh_handle) : 0; + __entry->status = be32_to_cpu(status); + memcpy(__get_str(name), name, namelen); + __get_str(name)[namelen] = '\0'; + ), + TP_printk("xid=0x%08x parent fh_hash=0x%08x name=%s result fh_hash=0x%08x status=%d", + __entry->xid, __entry->parent, __get_str(name), + __entry->result, __entry->status + ) +); + +TRACE_EVENT(nfsd4_lookup, + TP_PROTO( + const struct svc_rqst *rqstp, + const char *name, + unsigned int namelen, + __be32 status + ), + TP_ARGS(rqstp, name, namelen, status), + TP_STRUCT__entry( + __field(u32, xid) + __field(int, status) + __dynamic_array(unsigned char, name, namelen + 1) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->status = be32_to_cpu(status); + memcpy(__get_str(name), name, namelen); + __get_str(name)[namelen] = '\0'; + ), + TP_printk("xid=0x%08x name=%s status=%d", + __entry->xid, __get_str(name), __entry->status + ) +); + /* * from include/linux/nfs4.h */ diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 0d354531ed19..20853ab87908 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -106,6 +106,9 @@ nfsd_cross_mnt(struct svc_rqst *rqstp, struct dentry **dpp, } path_put(&path); exp_put(exp2); + if (err != nfs_ok) + trace_printk("xid=0x%08x status=%d", + be32_to_cpu(rqstp->rq_xid), be32_to_cpu(err)); out: return err; } @@ -179,8 +182,6 @@ nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp, struct dentry *dentry; int host_err; - dprintk("nfsd: nfsd_lookup(fh %s, %.*s)\n", SVCFH_fmt(fhp), len,name); - dparent = fhp->fh_dentry; exp = exp_get(fhp->fh_export); @@ -234,14 +235,23 @@ nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp, return nfserrno(host_err); } -/* - * Look up one component of a pathname. +/** + * nfsd_lookup - Look up one component of a pathname + * @rqstp: RPC Call being processed + * @fhp: file handle of parent directory + * @name: non-terminated C string of file name to look up + * @len: length of @name + * @resfh: on success, file handle of the looked-up object + * * N.B. After this call _both_ fhp and resfh need an fh_put + * When callers pass the same memory for @fhp and @resfh, + * fh_compose() fh_put's @fhp before overwritting it. * * If the lookup would cross a mountpoint, and the mounted filesystem * is exported to the client with NFSEXP_NOHIDE, then the lookup is * accepted as it stands and the mounted directory is * returned. Otherwise the covered directory is returned. + * * NOTE: this mountpoint crossing is not supported properly by all * clients and is explicitly disallowed for NFSv3 * NeilBrown From patchwork Wed Sep 16 21:43:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781073 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BCE5F618 for ; Wed, 16 Sep 2020 22:23:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9507A21941 for ; Wed, 16 Sep 2020 22:23:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lb3R7SM/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726538AbgIPWX1 (ORCPT ); Wed, 16 Sep 2020 18:23:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50394 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726548AbgIPWXE (ORCPT ); Wed, 16 Sep 2020 18:23:04 -0400 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B410DC0698C7 for ; Wed, 16 Sep 2020 14:43:55 -0700 (PDT) Received: by mail-io1-xd41.google.com with SMTP id d190so10033767iof.3 for ; Wed, 16 Sep 2020 14:43:55 -0700 (PDT) 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=NuIAiN/1UVAd6SOLAMUMtbBqJvbGTZYkrGFIQef8tUQ=; b=lb3R7SM/CioOWnYjm4Hj6Qxy9yDwso5Zx2xODSmJJBZQN+HA6wFn0PCFFKFUbPz7Q+ 4/02IC3gvGrKuGrTWRXcDznr6sTui9tmdbgM4akhsUFMpmQmU1mA0sv/KVjIVjzH49Ye ojC9DUjIGoLQinuLPdsSGEF12fH6wJYhMthLmr4tH+maui5Iemjb8/EUGHwQ8GRwnZBm wGyhXprQPWIo6EqhrnhETZGYktxDuyw9ZN4u/9MKDvrX8uP6WPsF0q6KmxX60mLLm7Nv mnBq2Wlk4CwBWcuxgqPraUGeTvic5/vxl1ReHvAY//+Pli2ch8yniYAKnZHBHIJq3A4h uTIA== 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=NuIAiN/1UVAd6SOLAMUMtbBqJvbGTZYkrGFIQef8tUQ=; b=k+LjSnrTDBkzlFBR5deqdcZBxgOGykTlWvkC1DshyPEoieWegH2S2jl8rTBT3jJh2S xTyPvD8PpSrcYsRbNr/D/Lcpa8VX7NGEawb6iVz0iZ6g+MYfz1+7AXr2fgYZrTlvPswY y7F0BzfX1rGX0apgaMhTzSlyQbaBcS+L20JSvC+JkuN2v3UTrUsIIP53crOAqAqsIkNz xT4SvGF959Kdp7bT6F/lpVjLF1FfBYDLOnx7ByCFYRTYwtERaMzn80t4dkFP9/fvZMGm QB23/mWvX0KRfLPkzIUZ8D+s0R7Vl8oS9fgtYNkRkZc7gTmijVL/XC8LuETaZft0NnB7 +A3g== X-Gm-Message-State: AOAM531rnvnew0P3E/8TzfakeQQh7AYLVg+oZBpIIh+WGR9GbTsMQy/v uycIKvjYegXdV+7W3U0PPUqxUQv+gng= X-Google-Smtp-Source: ABdhPJzIEP3ce+HrBhZdKOsxFgixFmni6kmp6mimxA6KLT/6G0WrkovdtBtGJyM6pVz4LAR6YVPZow== X-Received: by 2002:a5e:8c07:: with SMTP id n7mr14332526ioj.130.1600292635107; Wed, 16 Sep 2020 14:43:55 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id a23sm9515686ioc.54.2020.09.16.14.43.54 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:54 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhrkX023035; Wed, 16 Sep 2020 21:43:53 GMT Subject: [PATCH RFC 19/21] NFSD: Add lock and locku tracepoints From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:53 -0400 Message-ID: <160029263350.29208.7239182282422599644.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Record lock metadata. Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 8 ++---- fs/nfsd/trace.h | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 6 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 8444e8b51fa8..b7c99fe8bdd0 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -6701,9 +6701,7 @@ nfsd4_lock(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct net *net = SVC_NET(rqstp); struct nfsd_net *nn = net_generic(net, nfsd_net_id); - dprintk("NFSD: nfsd4_lock: start=%Ld length=%Ld\n", - (long long) lock->lk_offset, - (long long) lock->lk_length); + trace_nfsd4_lock(rqstp, lock); if (check_lock_length(lock->lk_offset, lock->lk_length)) return nfserr_inval; @@ -7001,9 +6999,7 @@ nfsd4_locku(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, int err; struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); - dprintk("NFSD: nfsd4_locku: start=%Ld length=%Ld\n", - (long long) locku->lu_offset, - (long long) locku->lu_length); + trace_nfsd4_locku(rqstp, locku); if (check_lock_length(locku->lu_offset, locku->lu_length)) return nfserr_inval; diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index fd212fc1fd2a..c345a73a818f 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -1605,6 +1605,71 @@ TRACE_EVENT(nfsd4_exchange_id, ) ); +/* + * from include/linux/nfs4.h + */ +TRACE_DEFINE_ENUM(NFS4_UNLOCK_LT); +TRACE_DEFINE_ENUM(NFS4_READ_LT); +TRACE_DEFINE_ENUM(NFS4_WRITE_LT); +TRACE_DEFINE_ENUM(NFS4_READW_LT); +TRACE_DEFINE_ENUM(NFS4_WRITEW_LT); + +#define show_nfsd_lock_type(x) \ + __print_symbolic(x, \ + { NFS4_UNLOCK_LT, "UNLOCK" }, \ + { NFS4_READ_LT, "READ" }, \ + { NFS4_WRITE_LT, "WRITE" }, \ + { NFS4_READW_LT, "READW" }, \ + { NFS4_WRITEW_LT, "WRITEW" }) + +TRACE_EVENT(nfsd4_lock, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_lock *lock + ), + TP_ARGS(rqstp, lock), + TP_STRUCT__entry( + __field(u32, xid) + __field(unsigned long, type) + __field(bool, new) + __field(long long, start) + __field(long long, length) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->type = lock->lk_type; + __entry->new = lock->lk_is_new; + __entry->start = lock->lk_offset; + __entry->length = lock->lk_length; + ), + TP_printk("xid=0x%08x type=%s start=%Ld length=%Ld (%s)", + __entry->xid, show_nfsd_lock_type(__entry->type), + __entry->start, __entry->length, + __entry->new ? "new" : "not new" + ) +); + +TRACE_EVENT(nfsd4_locku, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_locku *locku + ), + TP_ARGS(rqstp, locku), + TP_STRUCT__entry( + __field(u32, xid) + __field(long long, start) + __field(long long, length) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->start = locku->lu_offset; + __entry->length = locku->lu_length; + ), + TP_printk("xid=0x%08x start=%Ld length=%Ld", + __entry->xid, __entry->start, __entry->length + ) +); + #endif /* _NFSD_TRACE_H */ #undef TRACE_INCLUDE_PATH From patchwork Wed Sep 16 21:43:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781059 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7B51B618 for ; Wed, 16 Sep 2020 22:23:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5ED1621941 for ; Wed, 16 Sep 2020 22:23:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="d3jCHm7w" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726366AbgIPWXR (ORCPT ); Wed, 16 Sep 2020 18:23:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726449AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC042C0698C8 for ; Wed, 16 Sep 2020 14:44:00 -0700 (PDT) Received: by mail-io1-xd44.google.com with SMTP id z25so9978543iol.10 for ; Wed, 16 Sep 2020 14:44:00 -0700 (PDT) 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=y4jfhY8r5LJIPrBu+UFDSeKrdf8DEzWa1S4iXt35jgI=; b=d3jCHm7wxwYqf4pb3/qW0iL6UZH0CEFfz15K5AE3Ms9ze5akV6OADVAqo48smhSlE6 gyGtGc4imG8Tf3G7s36jZ7Xmo3T92WsqIpdnwEXZU/7e0+60xYg/g66MdYEt3F+hlLoE 7Jb98Rst+1PMgB0Tl1OWXYOIPTJfTpvIACBB141DMVH97273pYatQAYLBLEjjAz3S0rx FVt80c6g6FhYE/N9LgTkY4L6mb6HJN0xvx0Dt+JZvIJ/sEz8mBrF5iXrja6avgaAAD1K ZL26endxTKGOWYKHfSgw2MYPjSGslGUNGJag08hP8WjqcO84O4A1wdEIGe095MXzcY5a x4nw== 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=y4jfhY8r5LJIPrBu+UFDSeKrdf8DEzWa1S4iXt35jgI=; b=QwtZPmNYGXjZ0NHXL6ufLVg/ydubFPYFr199exNcTbO3DJB7/kKfQuLCUFFvJVPg38 pwVpDQ4yDbUE7CEFcntcca8v6sLjU5Ub4lTzw9ymmgT3Uyr8T13wEnONoxi5oupBfsqt r0qTyshrcltxysObD+eV3H5lef44YDhiEVqEz9GDDq/vGXaDSQVdidoJMmNifRwNjjrb pfzug5a0SJt+Y4XJlYL4yBJMOZXhyX0w+Hb1DeBeoH50tnp2wcbYuhOYB4uQ2SrKMOQu Y+Juog+17N+03fRCibRlGL9KZdwBy3n/OYi0+VAsmXUA8G1idNT3APqqgWi6R16CURHC EzyA== X-Gm-Message-State: AOAM530njVV5C+6Bk1+x0R0RDirl5meI2uP8rOAjWkhQIXvGXI+D0JhV 0vBYhQ35Jm4SPLJBREthIhk= X-Google-Smtp-Source: ABdhPJx1YcYdjUUmfm3XI3na92MqkmzeoGe39qEEZK4AKPEYrxvWpcAZ0tnBaj0/oLH3ahCxZlOiXQ== X-Received: by 2002:a6b:8f10:: with SMTP id r16mr21336530iod.165.1600292640226; Wed, 16 Sep 2020 14:44:00 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id r8sm9520400iot.51.2020.09.16.14.43.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:43:59 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLhw6Q023038; Wed, 16 Sep 2020 21:43:58 GMT Subject: [PATCH RFC 20/21] NFSD: Add tracepoints to record the result of TEST_STATEID and FREE_STATEID From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:43:58 -0400 Message-ID: <160029263880.29208.946038211132453116.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org These tracepoints record information about NFSv4 state recovery. Signed-off-by: Chuck Lever --- fs/nfsd/nfs4state.c | 6 +++++ fs/nfsd/trace.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index b7c99fe8bdd0..9521d05cfb6b 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -5945,9 +5945,11 @@ nfsd4_test_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_test_stateid_id *stateid; struct nfs4_client *cl = cstate->session->se_client; - list_for_each_entry(stateid, &test_stateid->ts_stateid_list, ts_id_list) + list_for_each_entry(stateid, &test_stateid->ts_stateid_list, ts_id_list) { stateid->ts_id_status = nfsd4_validate_stateid(cl, &stateid->ts_id_stateid); + trace_nfsd4_test_stateid(rqstp, stateid); + } return nfs_ok; } @@ -5992,6 +5994,8 @@ nfsd4_free_stateid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfs4_client *cl = cstate->session->se_client; __be32 ret = nfserr_bad_stateid; + trace_nfsd4_free_stateid(rqstp, stateid); + spin_lock(&cl->cl_lock); s = find_stateid_locked(cl, stateid); if (!s) diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index c345a73a818f..d52c0ed5ce4a 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -1670,6 +1670,62 @@ TRACE_EVENT(nfsd4_locku, ) ); +TRACE_EVENT(nfsd4_test_stateid, + TP_PROTO( + const struct svc_rqst *rqstp, + const struct nfsd4_test_stateid_id *stateid + ), + TP_ARGS(rqstp, stateid), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, cl_boot) + __field(u32, cl_id) + __field(u32, si_id) + __field(u32, si_generation) + __field(int, status) + ), + TP_fast_assign( + const stateid_t *stp = &stateid->ts_id_stateid; + + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->cl_boot = stp->si_opaque.so_clid.cl_boot; + __entry->cl_id = stp->si_opaque.so_clid.cl_id; + __entry->si_id = stp->si_opaque.so_id; + __entry->si_generation = stp->si_generation; + __entry->status = be32_to_cpu(stateid->ts_id_status); + ), + TP_printk("xid=0x%08x client=%08x:%08x stateid=%08x:%08x status=%d", + __entry->xid, __entry->cl_boot, __entry->cl_id, + __entry->si_id, __entry->si_generation, __entry->status + ) +); + +TRACE_EVENT(nfsd4_free_stateid, + TP_PROTO( + const struct svc_rqst *rqstp, + const stateid_t *stp + ), + TP_ARGS(rqstp, stp), + TP_STRUCT__entry( + __field(u32, xid) + __field(u32, cl_boot) + __field(u32, cl_id) + __field(u32, si_id) + __field(u32, si_generation) + ), + TP_fast_assign( + __entry->xid = be32_to_cpu(rqstp->rq_xid); + __entry->cl_boot = stp->si_opaque.so_clid.cl_boot; + __entry->cl_id = stp->si_opaque.so_clid.cl_id; + __entry->si_id = stp->si_opaque.so_id; + __entry->si_generation = stp->si_generation; + ), + TP_printk("xid=0x%08x client=%08x:%08x stateid=%08x:%08x", + __entry->xid, __entry->cl_boot, __entry->cl_id, + __entry->si_id, __entry->si_generation + ) +); + #endif /* _NFSD_TRACE_H */ #undef TRACE_INCLUDE_PATH From patchwork Wed Sep 16 21:44:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 11781071 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 92EE359D for ; Wed, 16 Sep 2020 22:23:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 63DC220708 for ; Wed, 16 Sep 2020 22:23:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Vuw8UO4h" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726436AbgIPWXf (ORCPT ); Wed, 16 Sep 2020 18:23:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726458AbgIPWXC (ORCPT ); Wed, 16 Sep 2020 18:23:02 -0400 Received: from mail-io1-xd35.google.com (mail-io1-xd35.google.com [IPv6:2607:f8b0:4864:20::d35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D35A9C0698C9 for ; Wed, 16 Sep 2020 14:44:06 -0700 (PDT) Received: by mail-io1-xd35.google.com with SMTP id b6so10010560iof.6 for ; Wed, 16 Sep 2020 14:44:06 -0700 (PDT) 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=vpeV2L061yTt9qsal8pV7guzjAE90gJR7ARFCRzPV9M=; b=Vuw8UO4heN/+0Du2BqHrMV0VCS21djjcxkDwAHFU0sC0neRIDy/+VAUpoQo//pwlDl O66sHzqzgWSMwtG8k/t9l+jH8QyYVoPDaDjdRLcXBqa6zCkBdntfQaUSH7/nTuXZBXBM k3aJaN7aWrGBjDKa9C3LDoRwyMn1jtk/BwQJCu+trI4TMbknF9v1+xHOrpFwZuAYi6yA o7soOF0sOmhIuH6yk6o6pn4eILLdxllpED8gFahN+86V521+U2vVKHoy7A9p+CjkcUpw fcifGDhaNFUZw28TgXRyX+xtpwvdvwF9Ke1fvW2OzQlGmZkhLuXlPX4Yxb3ASDhbRLQV jW3A== 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=vpeV2L061yTt9qsal8pV7guzjAE90gJR7ARFCRzPV9M=; b=X+4ICMElo8nS17SU8G7Lcrvyr19IZZ8xN1HZzucu7gVM+BmDbK7Cum0J9xFHVDLqUR m5lKrrokcLT53Kfma9O1RNMmxKj0YYdEd9MoSiekEY0Pn6KTITCPjsh0pjPr/LZ8J7bM QxZj7HNH00EWZpHdAQOLP4HmIverrC2ouPluKI+pZydZW1cNL+TOBceoxw6TD0dJJRMa MIUeNm6oIS+iZEz4v3d2A0UvwFKHxQOKtxkIlq4VpqIAe5vhlQg3Prs99fC4arcMQkA8 Wevm5ydQkDEffDlkrDeHg63YZcDG3ASpbv4BxBX7fky36zMfA/zb3gtZ+6+FCGtBqXU7 bWng== X-Gm-Message-State: AOAM533KzcwNHETKzvIInP1W9+ASOhGB3GxVRsLdbOmPpBdLK+oe7SIl pvfBeReAUNlfmRSWW7gO5Nk= X-Google-Smtp-Source: ABdhPJxNPYds4RWmnIvlPsRB14OfFfTjvyFYlbKD9kgVlPcyXq3az9B9NXet2OaiyPthtU+AvGCM4w== X-Received: by 2002:a6b:8fc9:: with SMTP id r192mr20997071iod.24.1600292645544; Wed, 16 Sep 2020 14:44:05 -0700 (PDT) Received: from gateway.1015granger.net (c-68-61-232-219.hsd1.mi.comcast.net. [68.61.232.219]) by smtp.gmail.com with ESMTPSA id o12sm11145957ilq.29.2020.09.16.14.44.04 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Sep 2020 14:44:04 -0700 (PDT) Received: from klimt.1015granger.net (klimt.1015granger.net [192.168.1.55]) by gateway.1015granger.net (8.14.7/8.14.7) with ESMTP id 08GLi3kA023041; Wed, 16 Sep 2020 21:44:03 GMT Subject: [PATCH RFC 21/21] NFSD: Rename nfsd_ tracepoints to nfsd4_ From: Chuck Lever To: bfields@fieldses.org, Bill.Baker@oracle.com Cc: linux-nfs@vger.kernel.org Date: Wed, 16 Sep 2020 17:44:03 -0400 Message-ID: <160029264389.29208.17695742302984423641.stgit@klimt.1015granger.net> In-Reply-To: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> References: <160029169954.29208.8757662600714736320.stgit@klimt.1015granger.net> User-Agent: StGit/0.23 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Allow administrators to enable just NFS4-related or non-NFSv4-related server tracepoints by changing the prefix of NFSv4-related tracepoints. Signed-off-by: Chuck Lever --- fs/nfsd/nfs4callback.c | 28 ++++++++++++++-------------- fs/nfsd/nfs4layouts.c | 16 ++++++++-------- fs/nfsd/nfs4proc.c | 4 ++-- fs/nfsd/nfs4state.c | 14 +++++++------- fs/nfsd/trace.h | 16 ++++++++-------- 5 files changed, 39 insertions(+), 39 deletions(-) diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 052be5bf9ef5..65675c0158ed 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c @@ -906,7 +906,7 @@ static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c if (clp->cl_minorversion == 0) { if (!clp->cl_cred.cr_principal && (clp->cl_cred.cr_flavor >= RPC_AUTH_GSS_KRB5)) { - trace_nfsd_cb_setup_err(clp, -EINVAL); + trace_nfsd4_cb_setup_err(clp, -EINVAL); return -EINVAL; } args.client_name = clp->cl_cred.cr_principal; @@ -916,7 +916,7 @@ static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c clp->cl_cb_ident = conn->cb_ident; } else { if (!conn->cb_xprt) { - trace_nfsd_cb_setup_err(clp, -EINVAL); + trace_nfsd4_cb_setup_err(clp, -EINVAL); return -EINVAL; } clp->cl_cb_conn.cb_xprt = conn->cb_xprt; @@ -930,18 +930,18 @@ static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c /* Create RPC client */ client = rpc_create(&args); if (IS_ERR(client)) { - trace_nfsd_cb_setup_err(clp, PTR_ERR(client)); + trace_nfsd4_cb_setup_err(clp, PTR_ERR(client)); return PTR_ERR(client); } cred = get_backchannel_cred(clp, client, ses); if (!cred) { - trace_nfsd_cb_setup_err(clp, -ENOMEM); + trace_nfsd4_cb_setup_err(clp, -ENOMEM); rpc_shutdown_client(client); return -ENOMEM; } clp->cl_cb_client = client; clp->cl_cb_cred = cred; - trace_nfsd_cb_setup(clp); + trace_nfsd4_cb_setup(clp); return 0; } @@ -950,7 +950,7 @@ static void nfsd4_mark_cb_down(struct nfs4_client *clp, int reason) if (test_bit(NFSD4_CLIENT_CB_UPDATE, &clp->cl_flags)) return; clp->cl_cb_state = NFSD4_CB_DOWN; - trace_nfsd_cb_state(clp); + trace_nfsd4_cb_state(clp); } static void nfsd4_mark_cb_fault(struct nfs4_client *clp, int reason) @@ -958,19 +958,19 @@ static void nfsd4_mark_cb_fault(struct nfs4_client *clp, int reason) if (test_bit(NFSD4_CLIENT_CB_UPDATE, &clp->cl_flags)) return; clp->cl_cb_state = NFSD4_CB_FAULT; - trace_nfsd_cb_state(clp); + trace_nfsd4_cb_state(clp); } static void nfsd4_cb_probe_done(struct rpc_task *task, void *calldata) { struct nfs4_client *clp = container_of(calldata, struct nfs4_client, cl_cb_null); - trace_nfsd_cb_done(clp, task->tk_status); + trace_nfsd4_cb_done(clp, task->tk_status); if (task->tk_status) nfsd4_mark_cb_down(clp, task->tk_status); else { clp->cl_cb_state = NFSD4_CB_UP; - trace_nfsd_cb_state(clp); + trace_nfsd4_cb_state(clp); } } @@ -996,7 +996,7 @@ static const struct rpc_call_ops nfsd4_cb_probe_ops = { void nfsd4_probe_callback(struct nfs4_client *clp) { clp->cl_cb_state = NFSD4_CB_UNKNOWN; - trace_nfsd_cb_state(clp); + trace_nfsd4_cb_state(clp); set_bit(NFSD4_CLIENT_CB_UPDATE, &clp->cl_flags); nfsd4_run_cb(&clp->cl_cb_null); } @@ -1013,7 +1013,7 @@ void nfsd4_change_callback(struct nfs4_client *clp, struct nfs4_cb_conn *conn) spin_lock(&clp->cl_lock); memcpy(&clp->cl_cb_conn, conn, sizeof(struct nfs4_cb_conn)); spin_unlock(&clp->cl_lock); - trace_nfsd_cb_state(clp); + trace_nfsd4_cb_state(clp); } /* @@ -1170,7 +1170,7 @@ static void nfsd4_cb_done(struct rpc_task *task, void *calldata) struct nfsd4_callback *cb = calldata; struct nfs4_client *clp = cb->cb_clp; - trace_nfsd_cb_done(clp, task->tk_status); + trace_nfsd4_cb_done(clp, task->tk_status); if (!nfsd4_cb_sequence_done(task, cb)) return; @@ -1275,7 +1275,7 @@ static void nfsd4_process_cb_update(struct nfsd4_callback *cb) * kill the old client: */ if (clp->cl_cb_client) { - trace_nfsd_cb_shutdown(clp); + trace_nfsd4_cb_shutdown(clp); rpc_shutdown_client(clp->cl_cb_client); clp->cl_cb_client = NULL; put_cred(clp->cl_cb_cred); @@ -1321,7 +1321,7 @@ nfsd4_run_cb_work(struct work_struct *work) struct rpc_clnt *clnt; int flags; - trace_nfsd_cb_work(clp, cb->cb_msg.rpc_proc->p_name); + trace_nfsd4_cb_work(clp, cb->cb_msg.rpc_proc->p_name); if (cb->cb_need_restart) { cb->cb_need_restart = false; diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c index a97873f2d22b..7daa553abba4 100644 --- a/fs/nfsd/nfs4layouts.c +++ b/fs/nfsd/nfs4layouts.c @@ -158,7 +158,7 @@ nfsd4_free_layout_stateid(struct nfs4_stid *stid) struct nfs4_client *clp = ls->ls_stid.sc_client; struct nfs4_file *fp = ls->ls_stid.sc_file; - trace_nfsd_layoutstate_free(&ls->ls_stid.sc_stateid); + trace_nfsd4_layoutstate_free(&ls->ls_stid.sc_stateid); spin_lock(&clp->cl_lock); list_del_init(&ls->ls_perclnt); @@ -257,7 +257,7 @@ nfsd4_alloc_layout_stateid(struct nfsd4_compound_state *cstate, list_add(&ls->ls_perfile, &fp->fi_lo_states); spin_unlock(&fp->fi_lock); - trace_nfsd_layoutstate_alloc(&ls->ls_stid.sc_stateid); + trace_nfsd4_layoutstate_alloc(&ls->ls_stid.sc_stateid); return ls; } @@ -327,7 +327,7 @@ nfsd4_recall_file_layout(struct nfs4_layout_stateid *ls) if (list_empty(&ls->ls_layouts)) goto out_unlock; - trace_nfsd_layout_recall(&ls->ls_stid.sc_stateid); + trace_nfsd4_layout_recall(&ls->ls_stid.sc_stateid); refcount_inc(&ls->ls_stid.sc_count); nfsd4_run_cb(&ls->ls_recall); @@ -500,7 +500,7 @@ nfsd4_return_file_layouts(struct svc_rqst *rqstp, false, lrp->lr_layout_type, &ls); if (nfserr) { - trace_nfsd_layout_return_lookup_fail(&lrp->lr_sid); + trace_nfsd4_layout_return_lookup_fail(&lrp->lr_sid); return nfserr; } @@ -516,7 +516,7 @@ nfsd4_return_file_layouts(struct svc_rqst *rqstp, nfs4_inc_and_copy_stateid(&lrp->lr_sid, &ls->ls_stid); lrp->lrs_present = 1; } else { - trace_nfsd_layoutstate_unhash(&ls->ls_stid.sc_stateid); + trace_nfsd4_layoutstate_unhash(&ls->ls_stid.sc_stateid); nfs4_unhash_stid(&ls->ls_stid); lrp->lrs_present = 0; } @@ -686,7 +686,7 @@ nfsd4_cb_layout_done(struct nfsd4_callback *cb, struct rpc_task *task) /* * Unknown error or non-responding client, we'll need to fence. */ - trace_nfsd_layout_recall_fail(&ls->ls_stid.sc_stateid); + trace_nfsd4_layout_recall_fail(&ls->ls_stid.sc_stateid); ops = nfsd4_layout_ops[ls->ls_layout_type]; if (ops->fence_client) @@ -695,7 +695,7 @@ nfsd4_cb_layout_done(struct nfsd4_callback *cb, struct rpc_task *task) nfsd4_cb_layout_fail(ls); return 1; case -NFS4ERR_NOMATCHING_LAYOUT: - trace_nfsd_layout_recall_done(&ls->ls_stid.sc_stateid); + trace_nfsd4_layout_recall_done(&ls->ls_stid.sc_stateid); task->tk_status = 0; return 1; } @@ -708,7 +708,7 @@ nfsd4_cb_layout_release(struct nfsd4_callback *cb) container_of(cb, struct nfs4_layout_stateid, ls_recall); LIST_HEAD(reaplist); - trace_nfsd_layout_recall_release(&ls->ls_stid.sc_stateid); + trace_nfsd4_layout_recall_release(&ls->ls_stid.sc_stateid); nfsd4_return_all_layouts(ls, &reaplist); nfsd4_free_layouts(&reaplist); diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 379077254f9a..3cb9fc91cddd 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -1973,7 +1973,7 @@ nfsd4_layoutget(struct svc_rqst *rqstp, nfserr = nfsd4_preprocess_layout_stateid(rqstp, cstate, &lgp->lg_sid, true, lgp->lg_layout_type, &ls); if (nfserr) { - trace_nfsd_layout_get_lookup_fail(&lgp->lg_sid); + trace_nfsd4_layout_get_lookup_fail(&lgp->lg_sid); goto out; } @@ -2042,7 +2042,7 @@ nfsd4_layoutcommit(struct svc_rqst *rqstp, false, lcp->lc_layout_type, &ls); if (nfserr) { - trace_nfsd_layout_commit_lookup_fail(&lcp->lc_sid); + trace_nfsd4_layout_commit_lookup_fail(&lcp->lc_sid); /* fixup error code as per RFC5661 */ if (nfserr == nfserr_bad_stateid) nfserr = nfserr_badlayout; diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 9521d05cfb6b..876051c5eb29 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -2893,12 +2893,12 @@ gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se, struct svc_r conn->cb_prog = se->se_callback_prog; conn->cb_ident = se->se_callback_ident; memcpy(&conn->cb_saddr, &rqstp->rq_daddr, rqstp->rq_daddrlen); - trace_nfsd_cb_args(clp, conn); + trace_nfsd4_cb_args(clp, conn); return; out_err: conn->cb_addr.ss_family = AF_UNSPEC; conn->cb_addrlen = 0; - trace_nfsd_cb_nodelegs(clp); + trace_nfsd4_cb_nodelegs(clp); return; } @@ -3954,7 +3954,7 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, if (clp_used_exchangeid(conf)) goto out; if (!same_creds(&conf->cl_cred, &rqstp->rq_cred)) { - trace_nfsd_clid_inuse_err(conf); + trace_nfsd4_clid_inuse_err(conf); goto out; } } @@ -4578,7 +4578,7 @@ nfsd_break_deleg_cb(struct file_lock *fl) struct nfs4_delegation *dp = (struct nfs4_delegation *)fl->fl_owner; struct nfs4_file *fp = dp->dl_stid.sc_file; - trace_nfsd_deleg_break(&dp->dl_stid.sc_stateid); + trace_nfsd4_deleg_break(&dp->dl_stid.sc_stateid); /* * We don't want the locks code to timeout the lease for us; @@ -5145,7 +5145,7 @@ nfs4_open_delegation(struct svc_fh *fh, struct nfsd4_open *open, memcpy(&open->op_delegate_stateid, &dp->dl_stid.sc_stateid, sizeof(dp->dl_stid.sc_stateid)); - trace_nfsd_deleg_open(&dp->dl_stid.sc_stateid); + trace_nfsd4_deleg_open(&dp->dl_stid.sc_stateid); open->op_delegate_type = NFS4_OPEN_DELEGATE_READ; nfs4_put_stid(&dp->dl_stid); return; @@ -5262,7 +5262,7 @@ nfsd4_process_open2(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nf nfs4_open_delegation(current_fh, open, stp); nodeleg: status = nfs_ok; - trace_nfsd_deleg_none(&stp->st_stid.sc_stateid); + trace_nfsd4_deleg_none(&stp->st_stid.sc_stateid); out: /* 4.1 client trying to upgrade/downgrade delegation? */ if (open->op_delegate_type == NFS4_OPEN_DELEGATE_NONE && dp && @@ -7803,7 +7803,7 @@ nfsd_recall_delegations(struct list_head *reaplist) list_del_init(&dp->dl_recall_lru); clp = dp->dl_stid.sc_client; - trace_nfsd_deleg_recall(&dp->dl_stid.sc_stateid); + trace_nfsd4_deleg_recall(&dp->dl_stid.sc_stateid); /* * We skipped all entries that had a zero dl_time before, diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index d52c0ed5ce4a..9d6338dfad5a 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -559,7 +559,7 @@ DECLARE_EVENT_CLASS(nfsd_stateid_class, ) #define DEFINE_STATEID_EVENT(name) \ -DEFINE_EVENT(nfsd_stateid_class, nfsd_##name, \ +DEFINE_EVENT(nfsd_stateid_class, nfsd4_##name, \ TP_PROTO(stateid_t *stp), \ TP_ARGS(stp)) @@ -655,7 +655,7 @@ DEFINE_EVENT(nfsd_net_class, nfsd_##name, \ DEFINE_NET_EVENT(grace_start); DEFINE_NET_EVENT(grace_complete); -TRACE_EVENT(nfsd_clid_inuse_err, +TRACE_EVENT(nfsd4_clid_inuse_err, TP_PROTO(const struct nfs4_client *clp), TP_ARGS(clp), TP_STRUCT__entry( @@ -922,7 +922,7 @@ TRACE_EVENT(nfsd_drc_mismatch, __entry->ingress) ); -TRACE_EVENT(nfsd_cb_args, +TRACE_EVENT(nfsd4_cb_args, TP_PROTO( const struct nfs4_client *clp, const struct nfs4_cb_conn *conn @@ -948,7 +948,7 @@ TRACE_EVENT(nfsd_cb_args, __entry->addr, __entry->prog, __entry->ident) ); -TRACE_EVENT(nfsd_cb_nodelegs, +TRACE_EVENT(nfsd4_cb_nodelegs, TP_PROTO(const struct nfs4_client *clp), TP_ARGS(clp), TP_STRUCT__entry( @@ -996,7 +996,7 @@ DECLARE_EVENT_CLASS(nfsd_cb_class, ); #define DEFINE_NFSD_CB_EVENT(name) \ -DEFINE_EVENT(nfsd_cb_class, nfsd_cb_##name, \ +DEFINE_EVENT(nfsd_cb_class, nfsd4_cb_##name, \ TP_PROTO(const struct nfs4_client *clp), \ TP_ARGS(clp)) @@ -1004,7 +1004,7 @@ DEFINE_NFSD_CB_EVENT(setup); DEFINE_NFSD_CB_EVENT(state); DEFINE_NFSD_CB_EVENT(shutdown); -TRACE_EVENT(nfsd_cb_setup_err, +TRACE_EVENT(nfsd4_cb_setup_err, TP_PROTO( const struct nfs4_client *clp, long error @@ -1027,7 +1027,7 @@ TRACE_EVENT(nfsd_cb_setup_err, __entry->addr, __entry->cl_boot, __entry->cl_id, __entry->error) ); -TRACE_EVENT(nfsd_cb_work, +TRACE_EVENT(nfsd4_cb_work, TP_PROTO( const struct nfs4_client *clp, const char *procedure @@ -1051,7 +1051,7 @@ TRACE_EVENT(nfsd_cb_work, __get_str(procedure)) ); -TRACE_EVENT(nfsd_cb_done, +TRACE_EVENT(nfsd4_cb_done, TP_PROTO( const struct nfs4_client *clp, int status