From nobody Thu Oct 9 08:43:30 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5596B2E54C5; Wed, 18 Jun 2025 13:19:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252774; cv=none; b=nPj/jIXa1Y8RzJQbT4Z5WLlRf3+Z1FkyVl97o/6GX6yNR+xqsrsdppqPF526T35rP6ho5jFWvg+/qeLFdXjSTtwT/LJ4w1ixZyVF55yFG+TBAP0V7MogDb/TglHtv7nzaeFsh3spU0dopY7MbF23NlK+v1vX0wdIEK1YZTvyonE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252774; c=relaxed/simple; bh=cEVNTymQyEoLW8LNl0dbE+EwAXQIKxWKTXC0FaiYbaU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TRlOaqEIfAAV3NqnzSSCQUs099AoeIqzwtmvPUim6gFbJCmDvs98OUlQs0c8PvIl2pxRKjZwuKcUajVolnHN9fubkgfgEORGAeEpfXXiZ5d/bggfYZmF2iFfriEOjqwjWmFuW1P0BOqqtA0xidKwgM+do8qjirC7b5e/YixQnsc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gnX1nuFO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gnX1nuFO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78473C4CEF0; Wed, 18 Jun 2025 13:19:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750252774; bh=cEVNTymQyEoLW8LNl0dbE+EwAXQIKxWKTXC0FaiYbaU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gnX1nuFO3g/mGM54QpOM682oD66yFo+oegyo5UQ6u8aiJzOj77ZiAapTznVn0hKpq /uE6hNX6HHZDzfhGHhQG5lDtiHzGYTFA+8zFLhZbi4lAYbNkg7jQSR0cZr4WMH9Vev ijYnWBw86G3DhDG/iGmcNFBlLZfeZVb0F7YnA/iJPRqgzOhW98WZ6A67HQTh94Tvqx h7idIKMsZ7EF0Xn8vWnzjVADq5hU6+VMOZq0rLJ4n1TG9Pmzqzv/NeLamtpIqbjGo3 pgpbGtOyqyqsOLCpIHLbB1dfGOnCra2KfQzgHEHQcfylfRZDttFLs3pmYyxjFqptOd qI+UYFFG32h1A== From: Jeff Layton Date: Wed, 18 Jun 2025 09:19:12 -0400 Subject: [PATCH v2 1/4] nfs: add cache_validity to the nfs_inode_event tracepoints Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250618-nfs-tracepoints-v2-1-540c9fb48da2@kernel.org> References: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> In-Reply-To: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Coddington , Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1511; i=jlayton@kernel.org; h=from:subject:message-id; bh=cEVNTymQyEoLW8LNl0dbE+EwAXQIKxWKTXC0FaiYbaU=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoUrzjZURfKUsFTAqdCGO/ckimfh3RAZyMvrfud AhynZsPljSJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaFK84wAKCRAADmhBGVaC FRo4EACUs2E4eTW/GtfEj4fE6TFzFDdIkWzrQE46ahoT4c4vHXrTADNVxgiXdNnY4K+j7PW9B4a aX04jLGEDic+1ULS1iNZ+IA+iLwCs6hVz0i8FJT3irUlr+rh0Nxc710niZSzGxsfgiBUvq47Quv VCcVcwTRJRIFhTiSfv1NMyNUssAnypXU8o85HejDFi39tw/P5ZggN3H9TQJ/KNEqY0E5DvRop/v RaTLROqIDTnykS6ttYJq6nd57a3HqjHMLOXf10mTRTTYP9tE6ueBpIxm2g+ch9gG/dSFajBBm/L vHvvyA46pBgZyaQGIL2WxIsr1Okw7sf9Syy16l7t+eC8qKFMxYgDHaHG9ojzhSNO93/ttv4zdmV Nxa/X5GQTCO7O+1zbY5g34Ah2okJqteGd/GUz+v7f+dIiKPMR/zgLs3+if2k0gLvRZj3f2en0YM JCi2fsowu19RLi7C1T19Y9/c8JseyB1xIsJsALxq7uLuoXQY1Lt7RWIJi1vnaajKAkZUndg7Gk6 ZSWlqdQAsavXlvSfLLGMRBatMT6wfrRu1MG7VIVf7pR5M90o8iejBp0l7aZATXvYTcv87z8WoZU sFqdUyxC7fclkS8bgLbisa5iP9U+BxvMWzfkrO4mph3r+OWdVd1EYp+hI5w3l+T9UYSlBHSJpTQ oRg2K5w1EIE2Weg== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 Managing the cache_validity flags is the deep voodoo of NFS cache coherency. Let's have a little extra visibility into that value via the nfs_inode_event tracepoints. Reviewed-by: Benjamin Coddington Signed-off-by: Jeff Layton --- fs/nfs/nfstrace.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/nfs/nfstrace.h b/fs/nfs/nfstrace.h index 7a058bd8c566e2976e24136e2901fbaa7070daac..55170cbf2ff115c85f56cbafb4f= c0e06313918cf 100644 --- a/fs/nfs/nfstrace.h +++ b/fs/nfs/nfstrace.h @@ -56,6 +56,7 @@ DECLARE_EVENT_CLASS(nfs_inode_event, __field(u32, fhandle) __field(u64, fileid) __field(u64, version) + __field(unsigned long, cache_validity) ), =20 TP_fast_assign( @@ -64,14 +65,17 @@ DECLARE_EVENT_CLASS(nfs_inode_event, __entry->fileid =3D nfsi->fileid; __entry->fhandle =3D nfs_fhandle_hash(&nfsi->fh); __entry->version =3D inode_peek_iversion_raw(inode); + __entry->cache_validity =3D nfsi->cache_validity; ), =20 TP_printk( - "fileid=3D%02x:%02x:%llu fhandle=3D0x%08x version=3D%llu ", + "fileid=3D%02x:%02x:%llu fhandle=3D0x%08x version=3D%llu cache_validity= =3D0x%lx (%s)", MAJOR(__entry->dev), MINOR(__entry->dev), (unsigned long long)__entry->fileid, __entry->fhandle, - (unsigned long long)__entry->version + (unsigned long long)__entry->version, + __entry->cache_validity, + nfs_show_cache_validity(__entry->cache_validity) ) ); =20 --=20 2.49.0 From nobody Thu Oct 9 08:43:30 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3A0D2E92A9; Wed, 18 Jun 2025 13:19:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252775; cv=none; b=m9+n6GNmipXXjjYekpi27PhD33/LuE6v26kLvNhr8so3ntQ4C7KNeZPaivwYcEcixGpsBCrDe846o885lrpQKmRdXvSOrsnID/vevoiYCObdVwmyFWrLpaVZlV+iYsny7DNX8uFQ1DGBtVm4cW18i4oFSZ7/SgsOp6wJTkPS3sY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252775; c=relaxed/simple; bh=Kj4KG3pu1OsywXHvSD3bQycaZRNcuCFo2JaNg0X1CAA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F+tADw3VcPanAGvlLEp1iCt6lcb614AUxmjOQSrJ8FYt5cmLFxoVBxCRbshjwu3EidQx1pPcz4ZxXTqJE7F3GGJN4hYefgkYlUR4Ti5a5lXwGBYV94WoLrO9UwL7/MM+p7gwczdLd1jZpyrSTrggrStvjrCIvjW4nYWis4zBQzk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BaJ4k48I; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BaJ4k48I" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 303D1C4CEF3; Wed, 18 Jun 2025 13:19:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750252774; bh=Kj4KG3pu1OsywXHvSD3bQycaZRNcuCFo2JaNg0X1CAA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BaJ4k48Im0qw6GhLE1SBLrjw+l7NnqNpJUJFZuczsjRMyMrJDGh36yIWl+IUBvhbR hecJWpvVfbTPKYXQZTAsZuuyvBS1nrkAzf0vDBoHTmOKRco7Sm9HcceJcet8BlLJbO oM6P/njiUanc8lSMH262BqYdmOm8koRBDRYCU5CGfaCKoJAj68KVwSqTHTsrinFB/G Oey4kUWss7rHyO/OUnQlwu9FiMIIMMqajTnZjxxJeN7rSZJGbyE3aX7zRx4Yksm8tk 5lNrB+nTIIPJrSADPzY//3BDy4DUi36bm6oTWAdmqtge9DCChlgeHeZGKSRGfR+8Vc 4ZeRoaj7Ce3Bw== From: Jeff Layton Date: Wed, 18 Jun 2025 09:19:13 -0400 Subject: [PATCH v2 2/4] nfs: add a tracepoint to nfs_inode_detach_delegation_locked Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250618-nfs-tracepoints-v2-2-540c9fb48da2@kernel.org> References: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> In-Reply-To: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Coddington , Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1411; i=jlayton@kernel.org; h=from:subject:message-id; bh=Kj4KG3pu1OsywXHvSD3bQycaZRNcuCFo2JaNg0X1CAA=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoUrzkQLLPDJvQvoZ1JbxobIhOgfdwHIFq31W7d BAJVwx4VECJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaFK85AAKCRAADmhBGVaC FXTPEACMu9c7zDvkjF1+oAejS+AnBJz/kyPzfm5WWxg1WPJ2HQel+V8wRCo4XyKEsY8xnAVm2vB zg5QQ34efHxOAirKpTsGa+0TVgXvmBfi/6h2Rkj/SITiAuQn8XyTUb2ctymYlfRR8v5CU4f+H83 SVL4I9sQXD+4ASqMg6OWWGgPKrODahtCVJN1fpycDeQ2dFZhxKaaBbALXDTSu4+BRAEuqxXS7XE /9CH+8k1cOwfwkNJeSnXrIrZP2SbdcQ/eNZh5OQFwb89/rKoRH+t0XF37ApeUO16+Xbg9bto8Yv DKYB1RZ0uxFDqHrcxsG2BWfvYhXbnG8H6+Yi3sPsU7/e36TkagrYGHoNVQjKCndT2YMPEnytQoh 3ZW5L3hYrMGzYI+BxaI+T7ID4UWFfQucwcZC+L4yuSYXjZrYfJr0vcNM26CRo1bTZIrrbujzcMz CZf+3xdt+lcRVkijn+CkozszYYYqN5GJvBc/qu6wCz77O48lOGcAJJSegGpGXpD0BdQzXnv6c8X orgMCRKElbvjmKaon0UwLSuWFQ1LsZI9r1ArOMGVR3n+788dR5UxC1n8O/olSylKgTSr4nsvoiE P6DgAjpTB0C6as5AlccyXMcVFgyi9ZPZGWxGIFwYHklA450cIv9t0mAApB710DFofjDIaDMczDX 67vGKD3fUxRj90Q== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 We have tracepoints for setting a delegation and reclaiming them. Add a tracepoint for when the delegation is being detached from the inode. Reviewed-by: Benjamin Coddington Signed-off-by: Jeff Layton --- fs/nfs/delegation.c | 2 ++ fs/nfs/nfs4trace.h | 1 + 2 files changed, 3 insertions(+) diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index 10ef46e29b2544920c026f023885301d5d8e22cd..78a97d340bbd98390ca8302176c= 17caf08dcab4a 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c @@ -355,6 +355,8 @@ nfs_detach_delegation_locked(struct nfs_inode *nfsi, rcu_dereference_protected(nfsi->delegation, lockdep_is_held(&clp->cl_lock)); =20 + trace_nfs4_detach_delegation(&nfsi->vfs_inode, delegation->type); + if (deleg_cur =3D=3D NULL || delegation !=3D deleg_cur) return NULL; =20 diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h index deab4c0e21a0642ee97b0b81f8c55812f5028f7c..6e1c4590ef9bf60eac994e85be8= 16e82f5e0c741 100644 --- a/fs/nfs/nfs4trace.h +++ b/fs/nfs/nfs4trace.h @@ -956,6 +956,7 @@ DECLARE_EVENT_CLASS(nfs4_set_delegation_event, TP_ARGS(inode, fmode)) DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_set_delegation); DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_reclaim_delegation); +DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_detach_delegation); =20 TRACE_EVENT(nfs4_delegreturn_exit, TP_PROTO( --=20 2.49.0 From nobody Thu Oct 9 08:43:30 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3ABB2E92AA; Wed, 18 Jun 2025 13:19:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252775; cv=none; b=RTIafBVZpZc/tbUzjmu4VCLi13s7SC3H7HvJJ+YGEQ4qQ1isSSxMoADOj/dwRcf289PU4H4wz6Xvbbep9lBdQNDafCMZ+UnD9FDn/t4cJqmg0+MZLEsUjaYXjubr2X4esvEUNn5eL2X6PqlVUa/1vAmOq6q80ZQnVHHSXL4wBMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252775; c=relaxed/simple; bh=cwCmH1wT+8CM+8/GoOJM2ceta//abzeWLzZBBxZrVDw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aKCE+iGbHp/ylYfyESucwbEIjEc1UapLDrJOwG+pN5cMxG67DnMsjN0FD3gGZFK7iRUqOUBE11NG8UyqDXZl2xvQOSRPICiY3ybllJ/J5k+CY3FjUhaS5QdZRlRrD7pP/39XhR7p/vz/Ul/2L9IivW17xZeNBr3GwRiwpsEbLXQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=I4lChnUW; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="I4lChnUW" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC770C4CEEE; Wed, 18 Jun 2025 13:19:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750252775; bh=cwCmH1wT+8CM+8/GoOJM2ceta//abzeWLzZBBxZrVDw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=I4lChnUWD84i2MRvP0Jpbq9Ub0X8h4tZu+28iRC/ZaExzqQS3eqNikiFHVUJYbJDx 2y3hSiWeffVFEXcNbJH838jRJ3uFcN6Fh4vWM227YQVtp5ib4WMB0KMrwTNThHcRJg e9eI/S+HpIYNpQWg8d5qSU8FJOynybY0Hfn8A5BzGDlyciqaLlti0+AUE88EiqRIKZ jX+Cajci6AEkjudELJxYlYhgNSVbm4FT6XCBBwAfbYXrwfVV/esueBPmWzeFSTf8lY 3gZJ/dcCWy8QBPQnQNsDieJvNEDXWdxv3nBc2KyOtwIistzbmvLr2PMQ1p/xAl0U3J GCeUd67/27EEA== From: Jeff Layton Date: Wed, 18 Jun 2025 09:19:14 -0400 Subject: [PATCH v2 3/4] nfs: new tracepoint in nfs_delegation_need_return Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250618-nfs-tracepoints-v2-3-540c9fb48da2@kernel.org> References: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> In-Reply-To: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Coddington , Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3106; i=jlayton@kernel.org; h=from:subject:message-id; bh=cwCmH1wT+8CM+8/GoOJM2ceta//abzeWLzZBBxZrVDw=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoUrzk4OHQdlsK4ySvKd1y/tGnkzQca3XSOBVo6 zjxkZCsHjKJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaFK85AAKCRAADmhBGVaC FbqPEACy6NkjlK0wd8ZUWfksCGuzbcUO5sZIwNSfLVwB0uUpofepFBhLkmZRySMs20C/0LIrSYd SrazdYVlzMD6aZpBSTivfGSfjegPIRWsnpEzL2s1w+ywyNEmJxYlV38MJ/Oj2CLUzqsEtFT9g88 f9M70tWuxpwEwSth5mgZFP/AnQ8Q1O+naS75tMGJG7ns7h97YI0ksn8NEGULWC63TuPXwbmK4ue k+nvpJRzhAdj9YkaWpZlzUcUxTap6/GU2rsQlHsUADRHQWsn/YBQG+fM24L5hRIvDHIHfM+WDxV gFQV1/faMzQN7KA8kW+xCf6yN87arN4sKv6Lfmb/iPbPP0RoidioWTaP9XYYv5uVEHVj61SxLwc cJLKrnBr3FsUDmpfWarVqHMcFrXEEigUekL/mtyOVDVhsWL1QY5poTu+grIe2uk0tH3GC5CnivO oztisDChXeGkEFdho+haN2ns77osU30Xjgd7xYOu26PEdpLth0JY5boT2LVJ/PLH9H/cFqyLcFr gjCeVWSy8qoRdpzy6YhWRKgDRnosA51gajL6WzhMntJi93lYCsGAZqJd8lsmD5ObpldO7cqR9bm 9At/sT2aO4tRgSKOdijCZ97M3+et7yxPe69EBxrNYRwb0UOO9xHrhbV+M5fvHQin1qni9HtenfC ssFgkvgSFdsew1A== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 Add a tracepoint in the function that decides whether to return a delegation to the server. Reviewed-by: Benjamin Coddington Signed-off-by: Jeff Layton --- fs/nfs/delegation.c | 2 ++ fs/nfs/nfs4trace.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index 78a97d340bbd98390ca8302176c17caf08dcab4a..6f136c47eed7f1801af337f0e88= f1a6bf477d0c6 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c @@ -594,6 +594,8 @@ static bool nfs_delegation_need_return(struct nfs_deleg= ation *delegation) { bool ret =3D false; =20 + trace_nfs_delegation_need_return(delegation); + if (test_and_clear_bit(NFS_DELEGATION_RETURN, &delegation->flags)) ret =3D true; if (test_bit(NFS_DELEGATION_RETURNING, &delegation->flags) || diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h index 6e1c4590ef9bf60eac994e85be816e82f5e0c741..73a6b60a848066546c2ae98b498= 2b0ab36bb0f73 100644 --- a/fs/nfs/nfs4trace.h +++ b/fs/nfs/nfs4trace.h @@ -14,6 +14,8 @@ #include #include =20 +#include "delegation.h" + #define show_nfs_fattr_flags(valid) \ __print_flags((unsigned long)valid, "|", \ { NFS_ATTR_FATTR_TYPE, "TYPE" }, \ @@ -958,6 +960,51 @@ DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_set_delegation); DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_reclaim_delegation); DEFINE_NFS4_SET_DELEGATION_EVENT(nfs4_detach_delegation); =20 +#define show_delegation_flags(flags) \ + __print_flags(flags, "|", \ + { BIT(NFS_DELEGATION_NEED_RECLAIM), "NEED_RECLAIM" }, \ + { BIT(NFS_DELEGATION_RETURN), "RETURN" }, \ + { BIT(NFS_DELEGATION_RETURN_IF_CLOSED), "RETURN_IF_CLOSED" }, \ + { BIT(NFS_DELEGATION_REFERENCED), "REFERENCED" }, \ + { BIT(NFS_DELEGATION_RETURNING), "RETURNING" }, \ + { BIT(NFS_DELEGATION_REVOKED), "REVOKED" }, \ + { BIT(NFS_DELEGATION_TEST_EXPIRED), "TEST_EXPIRED" }, \ + { BIT(NFS_DELEGATION_INODE_FREEING), "INODE_FREEING" }, \ + { BIT(NFS_DELEGATION_RETURN_DELAYED), "RETURN_DELAYED" }) + +DECLARE_EVENT_CLASS(nfs4_delegation_event, + TP_PROTO( + const struct nfs_delegation *delegation + ), + + TP_ARGS(delegation), + + TP_STRUCT__entry( + __field(u32, fhandle) + __field(unsigned int, fmode) + __field(unsigned long, flags) + ), + + TP_fast_assign( + __entry->fhandle =3D nfs_fhandle_hash(NFS_FH(delegation->inode)); + __entry->fmode =3D delegation->type; + __entry->flags =3D delegation->flags; + ), + + TP_printk( + "fhandle=3D0x%08x fmode=3D%s flags=3D%s", + __entry->fhandle, show_fs_fmode_flags(__entry->fmode), + show_delegation_flags(__entry->flags) + ) +); +#define DEFINE_NFS4_DELEGATION_EVENT(name) \ + DEFINE_EVENT(nfs4_delegation_event, name, \ + TP_PROTO( \ + const struct nfs_delegation *delegation \ + ), \ + TP_ARGS(delegation)) +DEFINE_NFS4_DELEGATION_EVENT(nfs_delegation_need_return); + TRACE_EVENT(nfs4_delegreturn_exit, TP_PROTO( const struct nfs4_delegreturnargs *args, --=20 2.49.0 From nobody Thu Oct 9 08:43:30 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A13F02BEC2F; Wed, 18 Jun 2025 13:19:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252778; cv=none; b=SUeJgyvL163g03YZCoyUVDdZlKbq+rDnSzBZG9trFO1gxBdukIHBGFwQV9nTWGCd0fL28on3atFnCl34VQAG1WnWPvR6c3/zEGJNSf9bX0LxwYp+CfVRBQX1NDWFKzwEkNR5luYrc0f3Cann7gkozJ4tnkWEs14N5P+4ON0WnzM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750252778; c=relaxed/simple; bh=zGIuSYzsW7L1kI0d7VvIIUwr4KTHRTjT1NEmYU5gr9I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cpicCgEDDa1QISgSA+u1lgDIwNwfNvJhSYykDEMQjqqEDHbySG28mWk7tJe45cuaGmlzq0kM+P9Q3PnSY8G72NgONDP2ey3N7IXYFhvFcwBpZz4H67lp9rsdaHVEdyhl7MUyfGx592OH/S01f5PcqvpdGYo54FswtWPO/ifdPjo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ClOI7Rs3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ClOI7Rs3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95891C4CEF2; Wed, 18 Jun 2025 13:19:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750252776; bh=zGIuSYzsW7L1kI0d7VvIIUwr4KTHRTjT1NEmYU5gr9I=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ClOI7Rs3v86C3p4OEFVsMh5vAXXblhJF8wkNCuZvLb8oB0oyS6aSOtUPlODEygqpE hpXQeMco8pG4woA/dej7mlqOGeEnTCgIliHoa2xuYjRiwsFVCcz25que6H7R73N2Xm k7W1MwzlkC4rcxqW9nJ0N3TRt+Pm/MKAixb4l397ci+OA1hpaeoeIZB1c368YnfkLQ 8/ZQrCulVst7JX7wKkwPb9sBliwRbDnZoufjf+yks7B+C3Xf4mlTO7ha28YgqCdx0H oLno6PArPSRplttgo7NdSmcEpfccIXLB7HmFEXrbZ5Hm2UVrxQxk9dW0fGANnk0SbC HBjwKKl6221fg== From: Jeff Layton Date: Wed, 18 Jun 2025 09:19:15 -0400 Subject: [PATCH v2 4/4] nfs: new tracepoint in match_stateid operation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250618-nfs-tracepoints-v2-4-540c9fb48da2@kernel.org> References: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> In-Reply-To: <20250618-nfs-tracepoints-v2-0-540c9fb48da2@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Benjamin Coddington , Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3248; i=jlayton@kernel.org; h=from:subject:message-id; bh=zGIuSYzsW7L1kI0d7VvIIUwr4KTHRTjT1NEmYU5gr9I=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoUrzk9fTt4CRwXi/jdESGg2KIS0UNF8aszEA/c cFOPoLVnuCJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaFK85AAKCRAADmhBGVaC FYkyD/46wifNI7p3s+K5D5MMBDFsaLzxWprDwrxESCJtD3wsDX2VLj4ZgM1wtBmk0TbazvypfGQ efJizHpcD9OcvcLlsjcO7slKK+nXKPTZ2DVfs/w7P5RE1XdoH/qG+EWHv/OMYgoeEEF0W4XsJGZ bQfkcZnSBpfhqN21l2/zycicPdt+N1Ld34IHobFSv18oC5hSOUJUsu92Ks7ap1XcPjtmSaO5CHm KDqefpJV44OXzATEEo8HeCymSn50809DC7f90FwWYZtuprCY7dgKNWjG62hmuGfgIXB4N0Wbl6V y2VxLebohOWbrwi/oJUvqBbH7ytAC9AriYSAFm03xZ85D1P3IkcOr1sQNPJ78eGiV4ZOwtI6E9Q +Jut65wwIwihdOPAG4v7wJRmOb1rsz1+zrPjw/AuFKTirBhPkXGkc4+HITYVNLZkxNj5VU33NFA 90CMRHTBADfhNpWLq21+wpPMnbAyB/6aFn3ctBPfnSeKjLQ8xFcYUnR6tr7LqvKylHurncSDmTI /bCH8jeegi0e2FyJ7iaAfmvrN9n0xWfBpP0OAtqL5Fnu1KyvL/kwOE9gPEtysFzP5F09LKDwIWf bFtG6HJCLdB2JDp3J3rRIIzXMSDQPYp6MnmDRP908T5brMyMKig80Qxvbxb5yHUb8/8zK+hHlrg H84CQFi2e6IqdMg== X-Developer-Key: i=jlayton@kernel.org; a=openpgp; fpr=4BC0D7B24471B2A184EAF5D3000E684119568215 Add new tracepoints in the NFSv4 match_stateid minorversion op that show the info in both stateids. Reviewed-by: Benjamin Coddington Signed-off-by: Jeff Layton --- fs/nfs/nfs4proc.c | 4 ++++ fs/nfs/nfs4trace.h | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 61 insertions(+) diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 341740fa293d8fb1cfabe0813c7fcadf04df4f62..80126290589aaccd801c8965252= 523894e37c44a 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -10680,6 +10680,8 @@ nfs41_free_lock_state(struct nfs_server *server, st= ruct nfs4_lock_state *lsp) static bool nfs41_match_stateid(const nfs4_stateid *s1, const nfs4_stateid *s2) { + trace_nfs41_match_stateid(s1, s2); + if (s1->type !=3D s2->type) return false; =20 @@ -10697,6 +10699,8 @@ static bool nfs41_match_stateid(const nfs4_stateid = *s1, static bool nfs4_match_stateid(const nfs4_stateid *s1, const nfs4_stateid *s2) { + trace_nfs4_match_stateid(s1, s2); + return nfs4_stateid_match(s1, s2); } =20 diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h index 73a6b60a848066546c2ae98b4982b0ab36bb0f73..c1a332da565d31e808d9230089c= 92c5ec472da81 100644 --- a/fs/nfs/nfs4trace.h +++ b/fs/nfs/nfs4trace.h @@ -1497,6 +1497,63 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_even= t, DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_recall); DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_layoutrecall_file); =20 +#define show_stateid_type(type) \ + __print_symbolic(type, \ + { NFS4_INVALID_STATEID_TYPE, "INVALID" }, \ + { NFS4_SPECIAL_STATEID_TYPE, "SPECIAL" }, \ + { NFS4_OPEN_STATEID_TYPE, "OPEN" }, \ + { NFS4_LOCK_STATEID_TYPE, "LOCK" }, \ + { NFS4_DELEGATION_STATEID_TYPE, "DELEGATION" }, \ + { NFS4_LAYOUT_STATEID_TYPE, "LAYOUT" }, \ + { NFS4_PNFS_DS_STATEID_TYPE, "PNFS_DS" }, \ + { NFS4_REVOKED_STATEID_TYPE, "REVOKED" }, \ + { NFS4_FREED_STATEID_TYPE, "FREED" }) + +DECLARE_EVENT_CLASS(nfs4_match_stateid_event, + TP_PROTO( + const nfs4_stateid *s1, + const nfs4_stateid *s2 + ), + + TP_ARGS(s1, s2), + + TP_STRUCT__entry( + __field(int, s1_seq) + __field(int, s2_seq) + __field(u32, s1_hash) + __field(u32, s2_hash) + __field(int, s1_type) + __field(int, s2_type) + ), + + TP_fast_assign( + __entry->s1_seq =3D s1->seqid; + __entry->s1_hash =3D nfs_stateid_hash(s1); + __entry->s1_type =3D s1->type; + __entry->s2_seq =3D s2->seqid; + __entry->s2_hash =3D nfs_stateid_hash(s2); + __entry->s2_type =3D s2->type; + ), + + TP_printk( + "s1=3D%s:%x:%u s2=3D%s:%x:%u", + show_stateid_type(__entry->s1_type), + __entry->s1_hash, __entry->s1_seq, + show_stateid_type(__entry->s2_type), + __entry->s2_hash, __entry->s2_seq + ) +); + +#define DEFINE_NFS4_MATCH_STATEID_EVENT(name) \ + DEFINE_EVENT(nfs4_match_stateid_event, name, \ + TP_PROTO( \ + const nfs4_stateid *s1, \ + const nfs4_stateid *s2 \ + ), \ + TP_ARGS(s1, s2)) +DEFINE_NFS4_MATCH_STATEID_EVENT(nfs41_match_stateid); +DEFINE_NFS4_MATCH_STATEID_EVENT(nfs4_match_stateid); + DECLARE_EVENT_CLASS(nfs4_idmap_event, TP_PROTO( const char *name, --=20 2.49.0