From nobody Sun Feb 8 17:49:20 2026 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 D6BC122DFE8; Tue, 3 Jun 2025 11:42:32 +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=1748950952; cv=none; b=SGtQjn7Z4NSoIh7vNuji3nZCxxBfcjSZ46GZwT3Vsq+A5rWF8B+8lVByIQ/FNs+wUCxE1Blzf89bl+UegSVbfOs8ZvICvnw5/Y7MMFUF79PsRTrghlWXt6NIdAZMooIyIB3hzYBIGEvnyD+7sf5ekPyB7QiXQvnuUFOwgwEPvvg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748950952; c=relaxed/simple; bh=aL8exLSZ0wjjQOCcHJtsFTsyNLK7umIQsd72p0QwE3o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vr7O/qSeEcVacq3lJz0sR/TJsPAOqjTVDWRE8k4cxASpl5OANMXXHlvgYuFF/6kJX7ULlMoKuKOg0IXTcvaXvyjp/vI7+1n/8shbc+dps3YMnauy+xELjDMqZpeNcdaxY9Tf6cLh+s4UCQR9qk94lGfSO/lRGkIFkcUtE7QkZWU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MLYlcrel; 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="MLYlcrel" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4BB51C4CEF0; Tue, 3 Jun 2025 11:42:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748950952; bh=aL8exLSZ0wjjQOCcHJtsFTsyNLK7umIQsd72p0QwE3o=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MLYlcrelY03pyYWf3zHh+ipFDnZLgciQlKMdJRr3IkWyAfOpzwGWNNgZuLgKbK/iH rRpE/RAO51LUJx26Nb/e2xgdqaE97uWRLS9B2xNJrcY7wWwzHZY6N+WGDt44dbAj2g 0NtHNs5O1C1aV6wAvh8rHyYuG1dZcIg12Hn6ZaQNCdYgc8c2Tio+TH2Ct0tpKzQGpt z90k9A5xPTvnSN7KbfazsvDCCUCK+UHAP23GFBQgWKrWs/qjXZLlhIZlTBbTYdyxpL zWYBwdlfSFq541bFXs8mAAqSniOnYpdkWSV3EkXZE7r/IftTrJnS235EhuYD0Y4KYc Rsma9MgzGAB3g== From: Jeff Layton Date: Tue, 03 Jun 2025 07:42:23 -0400 Subject: [PATCH 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: <20250603-nfs-tracepoints-v1-1-d2615f3bbe6c@kernel.org> References: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> In-Reply-To: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1455; i=jlayton@kernel.org; h=from:subject:message-id; bh=aL8exLSZ0wjjQOCcHJtsFTsyNLK7umIQsd72p0QwE3o=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoPt+mkQj3sVi7bVQwaNN25YIrmtX6SrHY4uRvo gGwNzDRUhWJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaD7fpgAKCRAADmhBGVaC FbfwD/9p/DuLSwMTPqlLVYq0IPv6DkcjlcVTCT+7pUtFDHxVa52x+B+TevdEdu7ozx29M1ZnMET JrnrKNUtkc5wgKjkoQHzjnpw9lZ8+1XNNdGyCVzU1P0JtlwbGePmo7WJmvmYxCaz/XJdl7VZhRJ jtC/FiADHfRUdnf7OeFguXcI9uEBlDWhxf583Jnp9hChGTaAC/dsGvFj8rCEWmPVV1IbEWlP1dk UFR9pFrmGd9vs22ZN3JSK4Cpl+Xbnb8ZmWqcZnffKIjkdDvovAs4ILNa8zfub7O+YD7iV/mybtQ QdBuTrb9cqWEFD1NqcYRijzxl8Ayobthp92B65EBeaFab2nEfq/oSpjP7uzFrKTEBpWOctpnUwR s5gfs/J+lsTdkCXYiGkHLoHtkx/h9JN6/2TVB0mjHWWQxXSxBxZLPMMf67ycBUGdo8Anq8xHhC+ fdpQsY9jGCWzGJC8afm9RhHPlNft/e5bG8LTbiv7XuLx5tFAeQKW+XK4x0WFqDv+Nh7JgLcrgCo XObth18eBkL+xBSOKgpxxuuzHA9/ABHYSWl27WRClHV1HTksecxFzdZ59AO20BENhiv8w9zawbt fAl+xCBx1JODDeCAXuq3sYc3+2ngMEyraVTqA8Nd/wB0W69UU+KJX07gkkZyWdS7hdiu8X22e5P AT854pdJFzSK1jA== 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. Signed-off-by: Jeff Layton Reviewed-by: Benjamin Coddington --- 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 Sun Feb 8 17:49:20 2026 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 D68AB22F763; Tue, 3 Jun 2025 11:42:33 +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=1748950953; cv=none; b=snHHJw01A58bryt/cl6sIZWWYCU/iFQAwbuFJvr2qXZvA4tHbSisC9A7EE3xdyEuUd0nGTHTSeaFkZJLgnyWdAKjohGusHEsoSYjPMCr3uCM1To434SihA1tCT+8YMRk1KB9Zweyz2f6BtpYKu5bpm0zeSJkvhF7uFCR5DaA0EI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748950953; c=relaxed/simple; bh=gGasBQyt+ZOsCCBdHYduRO46MAtmoQkiJmvgSAWw3TI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f8noTSOagRK321y1ht3Ik1BHyQs5QexTWAcjS5jbjsxkT9T8xDQk/q0ozKzQr/1WJNIzKQile29GU7GYxcLzEfBXdnPJ2Ja7dDJDwQGI3YCtY4aF0vSCqPHSs2GgeEX0SCAsgv97sZbPCA4kSxrc/wqOnM636pRlvzImr1Y/hfc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ueSe/xHw; 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="ueSe/xHw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E57BFC4CEF2; Tue, 3 Jun 2025 11:42:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748950953; bh=gGasBQyt+ZOsCCBdHYduRO46MAtmoQkiJmvgSAWw3TI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ueSe/xHwxulw+7Pcmc02Pk17MuEgQp7UZhwEJXmVWYnEEbweBVKuuAPqa7CIVUMQS 2xsZlMBoAS8XNnpQ/up0Kwul0r9G7kWzW2jckP+Ej5zvOL3lLzTDoPbevMUHR/a5Xv I2I1cv2cvEd/YKq2mHhiuEL5dve34R8+d95BVUV7CQ7WSfOxbPc91FRkqZE+H08MA0 I9rQI/kpVhZNcjKg5fHqKPxakvSKojtrEEeRVC+GGoLaGOZ1xI2+vE93drM4lNA+l2 yVAk8ljx8rK0mMkoXW+9h3CW8AfPhFy8ksQwry7tf7kaI2hZWlQQ9INF0WyYNCs1z2 NmiKa+814Ec9g== From: Jeff Layton Date: Tue, 03 Jun 2025 07:42:24 -0400 Subject: [PATCH 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: <20250603-nfs-tracepoints-v1-2-d2615f3bbe6c@kernel.org> References: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> In-Reply-To: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1355; i=jlayton@kernel.org; h=from:subject:message-id; bh=gGasBQyt+ZOsCCBdHYduRO46MAtmoQkiJmvgSAWw3TI=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoPt+mgkJb77tze4pEPRx7Kv/BDj4ymMp+Q/CqZ 0ignz9MthCJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaD7fpgAKCRAADmhBGVaC FYaRD/4gXQK9m6mqlAX7kcXtaSi+RSei6SRSRl1UaVp/mk6UcuTKDlmry4JukfGnIzVUA7Vbo+C CYLT627M54enBKcc4cx27IlZlluHf12jz7j4vAbmvDmu0SyQgUsrOe6LIyO/M0n3dD+9aTr6xQg dNloVz6t9d8UGHYYEhzFlL9onrvn4OEoI+/tOTr9cOhB8+bBTD8yrnPqaUH5mpD2jJb0hrPGU+2 WTODMzlHvxS4BAgX78CabybYD0qSxO2p1WIFxrwyy/gPPphrZgBvNBqb1k6egkleEdmOQ4lIkVH 2ewdsJ4RCprjCKMR+uebH3lEWiPWsoswmqBc4zMmSlSfrfjZyklwPYu8KXRO1LEn2+WUJtpTf0C vEb/lJvg9OjYnybInLmoERMKItRdkZ4upgOuAj3L9471inObMyiLSVBRNrLPWQDdck4FidnRZ4Q PT9iNBqITLXz9cnQtrsTG+oF3fIqMmFAD/pWCaOo4POh/RAFJOvcodAOC+yx1Tka85qD3L+PudS BD66rMlAApOofzmhWVAMxTO1uVYYXAXi3DhOrRaebqyAJgb+P9gt/AqOQcXkQEwfJJdNwOjJv8S 5NkGkBgb/TgXFecOejsX5jb6rB1+206NfJdoItrE9IIaw1TPJv/84hzkm9ble5W9ELvjQ9iyU/N CCSDoWy3yCgVCcg== 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. Signed-off-by: Jeff Layton Reviewed-by: Benjamin Coddington --- 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 Sun Feb 8 17:49:20 2026 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 1901F23099F; Tue, 3 Jun 2025 11:42: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=1748950955; cv=none; b=JCPY+dSZAdJIAP4chd+6NVfX2K/jyD5ZrxJjjG1+yIbOmHqPOjAZJPu0wkElS7zZijeImWf/W/84l57XAHvG1D+curfxq8r2Up5wSfQnGSS9GCk27hcxp/meO2TkncHpVm8xz5K2IF6z0tJ0E61LYx+3cXAW9aBpzuHTwlOofGQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748950955; c=relaxed/simple; bh=FvY8QaoJqci3tuIuqKZdMMJaO5JY+0JaOUDV7Pkhs24=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U/jOcrLPMH7e06QxJI5qgcDVUtNadCcxAkA0peBRQATGSve3fcwoWDa/dpMc9yIhu6UI0Rbk4TH4eEuAuH3zzj2b+Hkv9ki9mMuq8RqthVVpsY4Up6e3Ovl0T9pznzF6WK5iexP8vQwrzE62aZ9j6rTRooK3lK1FFKn+ZauhiKU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZvB4PwUA; 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="ZvB4PwUA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8C299C4CEF3; Tue, 3 Jun 2025 11:42:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748950954; bh=FvY8QaoJqci3tuIuqKZdMMJaO5JY+0JaOUDV7Pkhs24=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ZvB4PwUAdTN7Z5Uuxgy2GtMLshUsW414n418u0MLUGBGzR2GGH37pXkD0dchrabtV F0OFa9bVB/hD7ULExkI0Zmy51oB2kFhEHk+48ISdtX2T8p0WsZ/NNwJjmbxWIuOvm1 lMcKv6XRq+6aJmh6QO8zP363vlEwcuXCOG3cx3UlclFaidVMe4j+daraELr/OjfYlc 6pI5zmAQZh426i09N0JltNssVVOItPaD4M4wDKR6mKrJrlEQL2imj5tOfBCkHSC51h v7OCnzzyRZSvmarguVjH43KSVCH1wWjkszCR0kPxEc7MKGJ/msyGAUH4u7nm5PqN1o DKKFH1cYn3/kQ== From: Jeff Layton Date: Tue, 03 Jun 2025 07:42:25 -0400 Subject: [PATCH 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: <20250603-nfs-tracepoints-v1-3-d2615f3bbe6c@kernel.org> References: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> In-Reply-To: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3050; i=jlayton@kernel.org; h=from:subject:message-id; bh=FvY8QaoJqci3tuIuqKZdMMJaO5JY+0JaOUDV7Pkhs24=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoPt+nUIl0NFrrN2dL02077gxtjmmO1RGPSM474 FsiSwlYFcqJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaD7fpwAKCRAADmhBGVaC FW51D/44YTUIPIjBsdVVRGDtIt28ZG1RHlTF/kRKj6YwsOOcgYoMLaX+h+w+wJcL2OQRioKyObt qFx8cQEdyI78XFQdm2e/y6DEYAE56ZpIwY03/jI0Pokgmu3UdlY7FIZPVc2JM1HI2w1rsNkoZgP GFKRRv+tK75xg8qVQWAxb60gfdfV6Uye4v5LQo9d44iA0YPbDYBhdftcQc60duz/RPYFTdezTsf 4nYgsUjxXzO/2gv4Z2DPdH8Egcd2X5moFXP5M/+1U8vxpqvkS17BwPmc0YAXg2Z99GSswZD8XCY YgBz+gg0ERl9yKrRX26MIHHnQUmcO0KLOWbTqQPtDU7O7u7dr/1r/P6kTFu+rstqW4hBCkiOgav 74cvTiZG4XQViK4e3uEAgQ7CmQGGtjIHkJyzLoGulkB0C1BUQTile9YYOl6jhTCGQJUwLIFpMNR BCTHZ4MODofMtCTJpsZ2EE7GN8U830QZ9+DPGjw1IY0sh/Am0/aW9Q9VJJaVjd2d91iCzX9By/D 8etL3biCwUrcH1nIyDxrwOD7SEGtZyUYx4Ygif+B8vkE2pcilzxM1kDxibZS4yoGD0vMLhDXd7K 0qTy2ijTI0QMzjHnT3iBmBiX5OgBhSFBRNaBf83Smlc1I11qHD5FhTJVGWtq61LEnIHaGAhQ5/M 5yThsmqKZeg+6eQ== 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. Signed-off-by: Jeff Layton Reviewed-by: Benjamin Coddington --- 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 Sun Feb 8 17:49:20 2026 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 18FB2230996; Tue, 3 Jun 2025 11:42: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=1748950955; cv=none; b=D/YstddC+9kp4sZeyO3katyhwewyRLA/M0mfuDoOrdUWu7a3TEYXWvgHGUxONOwow0Pw9Vq90WYb7VsalmuAe9ciK7RthfVJVXl0ZyNaNha6Vea11hbsaZtcZE63Up9maz7eT4UwEDcO4KtHKf0igKi+3l6n6+rlLfpxLB65P3o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748950955; c=relaxed/simple; bh=c7h8+OhpYcCD6Yk5zHGJK/qie7KtLBAdPzz1KfmEVdo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MKGGcVoTU3TxsRYR+H2E2pbjcibDBBSiZSgdV0+lAD3HRS/p7/jZHwuhxDzkIHyTUp1VbVo0lfXaKu6b+nYwn7QIQDWvJ4NLsmWyeB0GJU+krLmYKak8C0KtI6sbHmP8znpxT3O2Jx61UcvAPSK7sydIIn9+3dhafaMKrN/UJyQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C3kSKcAg; 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="C3kSKcAg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 32584C4CEF7; Tue, 3 Jun 2025 11:42:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1748950954; bh=c7h8+OhpYcCD6Yk5zHGJK/qie7KtLBAdPzz1KfmEVdo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=C3kSKcAgJZvQ6f4PNIGiwPxsqOZB8zL5Y8ARssc3kDF+uFgXB2uC7E6SPCnroPa4e fDGi2JXBzTUMMeB0Xenbun/LvWGpdpN+Ov/t3RwFDEKFJAupz8mqAbrTwtZ13UuuB7 LqSn4votctAPE8k1XzMmRVV4hk3MeRAGbwmWapfuDtiPgujuTOW8zo4W3co0D8/a9A NUbOMJfSHc5oT0SriG5RecKnXXKljC3K6ujqeoF2xRHv8XLh06Dj9cLvMbF8LjSG03 5m0NDYwXE/XqM4wO9i8xDRZAbR606SEv3gScm9dbwziN15LNAPlYEdBSNTjfcN9OOt xOZTLcRG8igHw== From: Jeff Layton Date: Tue, 03 Jun 2025 07:42:26 -0400 Subject: [PATCH 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: <20250603-nfs-tracepoints-v1-4-d2615f3bbe6c@kernel.org> References: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> In-Reply-To: <20250603-nfs-tracepoints-v1-0-d2615f3bbe6c@kernel.org> To: Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, Jeff Layton X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3148; i=jlayton@kernel.org; h=from:subject:message-id; bh=c7h8+OhpYcCD6Yk5zHGJK/qie7KtLBAdPzz1KfmEVdo=; b=owEBbQKS/ZANAwAKAQAOaEEZVoIVAcsmYgBoPt+n75SWhIaAqoSPoH8ePvJqY5cSE5S6LFj/P m+MLEP7lMaJAjMEAAEKAB0WIQRLwNeyRHGyoYTq9dMADmhBGVaCFQUCaD7fpwAKCRAADmhBGVaC FWnpD/9vw6c2W8gv85a1bMuJBlvxVUyNaNqD+7LXNEabNduCdHjLvoyPkKNfaFJ+0K8NGMCVdd1 DkukeJilk5QMFijlIBTHvy/qjzdK2nrcxeLZuAF/2QvPvM+EqvjWsmKXKgj5Y8/s1jddEZC3Csz vs+TUu6KiBQXxnXAoWlUDShTFbygLq3vraCBkBQfkYoTNnmrBuZ28eWg4O1dZU4j+fraEHwxMTY Xocot81E3+678BnqciwRm7kQg0Y7eV61TOL8DlMHV5ID2mG511ZCamS2GxBjZwIQYxyqo6o7vCy JdWuqdsUf8ItHbFEVrGNW2y9tOEC+gjj6aW+1sV+2BbcpJkPuS+aKW6mDbfCr73MTJ2C8u3VNGg gYivm9b1z3ifeySa3twTFx4BwkrawwReC27Fjm22ge8t3mofTV2zfW1CfCK4XwfmswF/tn2hpRt Xb+CJL53KZ1rwuZy4oGjN3kNtyBaZ1XK8gPpDR4UKrr2fWw7HzCZMy/zYbRN+YAAKAkzZJFXuzw hTYzuZO+Q5Oxx6015aBuHFem5BncQ4Jt4WQsWJmjrKYy2B/gsNystNIDSktOQ8FGL0YZMAmIruB ciHiSjqwWkaeE+pF5M2eDE0d60JJqchQwpLuR4rd1T9KE94Y4O69ElehoDljdpfU2KyfyksyHum eS+ap3HPBCMK+Ug== 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. Signed-off-by: Jeff Layton Reviewed-by: Benjamin Coddington --- fs/nfs/nfs4proc.c | 4 ++++ fs/nfs/nfs4trace.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 60 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..9b56ce9f2f3dcb31a3e21d5740b= cf62aca814214 100644 --- a/fs/nfs/nfs4trace.h +++ b/fs/nfs/nfs4trace.h @@ -1497,6 +1497,62 @@ 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" }) + +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