linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency
@ 2025-06-03 11:42 Jeff Layton
  2025-06-03 11:42 ` [PATCH 1/4] nfs: add cache_validity to the nfs_inode_event tracepoints Jeff Layton
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Jeff Layton @ 2025-06-03 11:42 UTC (permalink / raw)
  To: Trond Myklebust, Anna Schumaker; +Cc: linux-nfs, linux-kernel, Jeff Layton

These are some tracepoints that I rolled a while back when working on
the client-side pieces of the directory delegation patchset. I think
that these are useful in their own right, even without dir delegations.

Please consider these for v6.17.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Jeff Layton (4):
      nfs: add cache_validity to the nfs_inode_event tracepoints
      nfs: add a tracepoint to nfs_inode_detach_delegation_locked
      nfs: new tracepoint in nfs_delegation_need_return
      nfs: new tracepoint in match_stateid operation

 fs/nfs/delegation.c |   4 ++
 fs/nfs/nfs4proc.c   |   4 ++
 fs/nfs/nfs4trace.h  | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/nfs/nfstrace.h   |   8 +++-
 4 files changed, 118 insertions(+), 2 deletions(-)
---
base-commit: e3e3775392f3f0f3e3044f8c162bf47858e01759
change-id: 20250603-nfs-tracepoints-034454716137

Best regards,
-- 
Jeff Layton <jlayton@kernel.org>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/4] nfs: add cache_validity to the nfs_inode_event tracepoints
  2025-06-03 11:42 [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Jeff Layton
@ 2025-06-03 11:42 ` Jeff Layton
  2025-06-03 11:42 ` [PATCH 2/4] nfs: add a tracepoint to nfs_inode_detach_delegation_locked Jeff Layton
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Jeff Layton @ 2025-06-03 11:42 UTC (permalink / raw)
  To: Trond Myklebust, Anna Schumaker; +Cc: linux-nfs, linux-kernel, Jeff Layton

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 <jlayton@kernel.org>
---
 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..55170cbf2ff115c85f56cbafb4fc0e06313918cf 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)
 		),
 
 		TP_fast_assign(
@@ -64,14 +65,17 @@ DECLARE_EVENT_CLASS(nfs_inode_event,
 			__entry->fileid = nfsi->fileid;
 			__entry->fhandle = nfs_fhandle_hash(&nfsi->fh);
 			__entry->version = inode_peek_iversion_raw(inode);
+			__entry->cache_validity = nfsi->cache_validity;
 		),
 
 		TP_printk(
-			"fileid=%02x:%02x:%llu fhandle=0x%08x version=%llu ",
+			"fileid=%02x:%02x:%llu fhandle=0x%08x version=%llu cache_validity=0x%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)
 		)
 );
 

-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] nfs: add a tracepoint to nfs_inode_detach_delegation_locked
  2025-06-03 11:42 [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Jeff Layton
  2025-06-03 11:42 ` [PATCH 1/4] nfs: add cache_validity to the nfs_inode_event tracepoints Jeff Layton
@ 2025-06-03 11:42 ` Jeff Layton
  2025-06-03 11:42 ` [PATCH 3/4] nfs: new tracepoint in nfs_delegation_need_return Jeff Layton
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Jeff Layton @ 2025-06-03 11:42 UTC (permalink / raw)
  To: Trond Myklebust, Anna Schumaker; +Cc: linux-nfs, linux-kernel, Jeff Layton

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 <jlayton@kernel.org>
---
 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..78a97d340bbd98390ca8302176c17caf08dcab4a 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));
 
+	trace_nfs4_detach_delegation(&nfsi->vfs_inode, delegation->type);
+
 	if (deleg_cur == NULL || delegation != deleg_cur)
 		return NULL;
 
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index deab4c0e21a0642ee97b0b81f8c55812f5028f7c..6e1c4590ef9bf60eac994e85be816e82f5e0c741 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);
 
 TRACE_EVENT(nfs4_delegreturn_exit,
 		TP_PROTO(

-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] nfs: new tracepoint in nfs_delegation_need_return
  2025-06-03 11:42 [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Jeff Layton
  2025-06-03 11:42 ` [PATCH 1/4] nfs: add cache_validity to the nfs_inode_event tracepoints Jeff Layton
  2025-06-03 11:42 ` [PATCH 2/4] nfs: add a tracepoint to nfs_inode_detach_delegation_locked Jeff Layton
@ 2025-06-03 11:42 ` Jeff Layton
  2025-06-03 11:42 ` [PATCH 4/4] nfs: new tracepoint in match_stateid operation Jeff Layton
  2025-06-10 13:05 ` [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Benjamin Coddington
  4 siblings, 0 replies; 9+ messages in thread
From: Jeff Layton @ 2025-06-03 11:42 UTC (permalink / raw)
  To: Trond Myklebust, Anna Schumaker; +Cc: linux-nfs, linux-kernel, Jeff Layton

Add a tracepoint in the function that decides whether to return a
delegation to the server.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 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..6f136c47eed7f1801af337f0e88f1a6bf477d0c6 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -594,6 +594,8 @@ static bool nfs_delegation_need_return(struct nfs_delegation *delegation)
 {
 	bool ret = false;
 
+	trace_nfs_delegation_need_return(delegation);
+
 	if (test_and_clear_bit(NFS_DELEGATION_RETURN, &delegation->flags))
 		ret = true;
 	if (test_bit(NFS_DELEGATION_RETURNING, &delegation->flags) ||
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index 6e1c4590ef9bf60eac994e85be816e82f5e0c741..73a6b60a848066546c2ae98b4982b0ab36bb0f73 100644
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -14,6 +14,8 @@
 #include <trace/misc/fs.h>
 #include <trace/misc/nfs.h>
 
+#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);
 
+#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 = nfs_fhandle_hash(NFS_FH(delegation->inode));
+			__entry->fmode = delegation->type;
+			__entry->flags = delegation->flags;
+		),
+
+		TP_printk(
+			"fhandle=0x%08x fmode=%s flags=%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,

-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] nfs: new tracepoint in match_stateid operation
  2025-06-03 11:42 [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Jeff Layton
                   ` (2 preceding siblings ...)
  2025-06-03 11:42 ` [PATCH 3/4] nfs: new tracepoint in nfs_delegation_need_return Jeff Layton
@ 2025-06-03 11:42 ` Jeff Layton
  2025-06-10 13:04   ` Benjamin Coddington
  2025-06-10 13:05 ` [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Benjamin Coddington
  4 siblings, 1 reply; 9+ messages in thread
From: Jeff Layton @ 2025-06-03 11:42 UTC (permalink / raw)
  To: Trond Myklebust, Anna Schumaker; +Cc: linux-nfs, linux-kernel, Jeff Layton

Add new tracepoints in the NFSv4 match_stateid minorversion op that show
the info in both stateids.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 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..80126290589aaccd801c8965252523894e37c44a 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -10680,6 +10680,8 @@ nfs41_free_lock_state(struct nfs_server *server, struct 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 != s2->type)
 		return false;
 
@@ -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);
 }
 
diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
index 73a6b60a848066546c2ae98b4982b0ab36bb0f73..9b56ce9f2f3dcb31a3e21d5740bcf62aca814214 100644
--- a/fs/nfs/nfs4trace.h
+++ b/fs/nfs/nfs4trace.h
@@ -1497,6 +1497,62 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_event,
 DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_recall);
 DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_layoutrecall_file);
 
+#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 = s1->seqid;
+			__entry->s1_hash = nfs_stateid_hash(s1);
+			__entry->s1_type = s1->type;
+			__entry->s2_seq = s2->seqid;
+			__entry->s2_hash = nfs_stateid_hash(s2);
+			__entry->s2_type = s2->type;
+		),
+
+		TP_printk(
+			"s1=%s:%x:%u s2=%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,

-- 
2.49.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] nfs: new tracepoint in match_stateid operation
  2025-06-03 11:42 ` [PATCH 4/4] nfs: new tracepoint in match_stateid operation Jeff Layton
@ 2025-06-10 13:04   ` Benjamin Coddington
  2025-06-10 13:09     ` Jeff Layton
  0 siblings, 1 reply; 9+ messages in thread
From: Benjamin Coddington @ 2025-06-10 13:04 UTC (permalink / raw)
  To: Jeff Layton; +Cc: Trond Myklebust, Anna Schumaker, linux-nfs, linux-kernel

On 3 Jun 2025, at 7:42, Jeff Layton wrote:

> Add new tracepoints in the NFSv4 match_stateid minorversion op that show
> the info in both stateids.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
>  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..80126290589aaccd801c8965252523894e37c44a 100644
> --- a/fs/nfs/nfs4proc.c
> +++ b/fs/nfs/nfs4proc.c
> @@ -10680,6 +10680,8 @@ nfs41_free_lock_state(struct nfs_server *server, struct 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 != s2->type)
>  		return false;
>
> @@ -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);
>  }
>
> diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
> index 73a6b60a848066546c2ae98b4982b0ab36bb0f73..9b56ce9f2f3dcb31a3e21d5740bcf62aca814214 100644
> --- a/fs/nfs/nfs4trace.h
> +++ b/fs/nfs/nfs4trace.h
> @@ -1497,6 +1497,62 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_event,
>  DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_recall);
>  DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_layoutrecall_file);
>
> +#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" })

Let's add NFS4_FREED_STATEID_TYPE at the end here, for after 77be29b7a3f89.

Reviewed-by: Benjamin Coddington <bcodding@redhat.com>

Ben


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency
  2025-06-03 11:42 [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Jeff Layton
                   ` (3 preceding siblings ...)
  2025-06-03 11:42 ` [PATCH 4/4] nfs: new tracepoint in match_stateid operation Jeff Layton
@ 2025-06-10 13:05 ` Benjamin Coddington
  4 siblings, 0 replies; 9+ messages in thread
From: Benjamin Coddington @ 2025-06-10 13:05 UTC (permalink / raw)
  To: Jeff Layton; +Cc: Trond Myklebust, Anna Schumaker, linux-nfs, linux-kernel

On 3 Jun 2025, at 7:42, Jeff Layton wrote:

> These are some tracepoints that I rolled a while back when working on
> the client-side pieces of the directory delegation patchset. I think
> that these are useful in their own right, even without dir delegations.
>
> Please consider these for v6.17.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
> ---
> Jeff Layton (4):
>       nfs: add cache_validity to the nfs_inode_event tracepoints
>       nfs: add a tracepoint to nfs_inode_detach_delegation_locked
>       nfs: new tracepoint in nfs_delegation_need_return
>       nfs: new tracepoint in match_stateid operation

For the series:

Reviewed-by: Benjamin Coddington <bcodding@redhat.com>

Ben


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] nfs: new tracepoint in match_stateid operation
  2025-06-10 13:04   ` Benjamin Coddington
@ 2025-06-10 13:09     ` Jeff Layton
  2025-06-17 18:45       ` Trond Myklebust
  0 siblings, 1 reply; 9+ messages in thread
From: Jeff Layton @ 2025-06-10 13:09 UTC (permalink / raw)
  To: Benjamin Coddington
  Cc: Trond Myklebust, Anna Schumaker, linux-nfs, linux-kernel

On Tue, 2025-06-10 at 09:04 -0400, Benjamin Coddington wrote:
> On 3 Jun 2025, at 7:42, Jeff Layton wrote:
> 
> > Add new tracepoints in the NFSv4 match_stateid minorversion op that show
> > the info in both stateids.
> > 
> > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > ---
> >  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..80126290589aaccd801c8965252523894e37c44a 100644
> > --- a/fs/nfs/nfs4proc.c
> > +++ b/fs/nfs/nfs4proc.c
> > @@ -10680,6 +10680,8 @@ nfs41_free_lock_state(struct nfs_server *server, struct 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 != s2->type)
> >  		return false;
> > 
> > @@ -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);
> >  }
> > 
> > diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
> > index 73a6b60a848066546c2ae98b4982b0ab36bb0f73..9b56ce9f2f3dcb31a3e21d5740bcf62aca814214 100644
> > --- a/fs/nfs/nfs4trace.h
> > +++ b/fs/nfs/nfs4trace.h
> > @@ -1497,6 +1497,62 @@ DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_event,
> >  DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_recall);
> >  DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_layoutrecall_file);
> > 
> > +#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" })
> 
> Let's add NFS4_FREED_STATEID_TYPE at the end here, for after 77be29b7a3f89.
>
> Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
> 
> Ben

Thanks, good catch. I did these patches a while ago and may have missed
some of the more recent changes. Anna, can you fix that up or would you
rather I resend the set?
-- 
Jeff Layton <jlayton@kernel.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] nfs: new tracepoint in match_stateid operation
  2025-06-10 13:09     ` Jeff Layton
@ 2025-06-17 18:45       ` Trond Myklebust
  0 siblings, 0 replies; 9+ messages in thread
From: Trond Myklebust @ 2025-06-17 18:45 UTC (permalink / raw)
  To: Jeff Layton, Benjamin Coddington; +Cc: Anna Schumaker, linux-nfs, linux-kernel

On Tue, 2025-06-10 at 09:09 -0400, Jeff Layton wrote:
> On Tue, 2025-06-10 at 09:04 -0400, Benjamin Coddington wrote:
> > On 3 Jun 2025, at 7:42, Jeff Layton wrote:
> > 
> > > Add new tracepoints in the NFSv4 match_stateid minorversion op
> > > that show
> > > the info in both stateids.
> > > 
> > > Signed-off-by: Jeff Layton <jlayton@kernel.org>
> > > ---
> > >  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..80126290589aaccd801c896
> > > 5252523894e37c44a 100644
> > > --- a/fs/nfs/nfs4proc.c
> > > +++ b/fs/nfs/nfs4proc.c
> > > @@ -10680,6 +10680,8 @@ nfs41_free_lock_state(struct nfs_server
> > > *server, struct 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 != s2->type)
> > >  		return false;
> > > 
> > > @@ -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);
> > >  }
> > > 
> > > diff --git a/fs/nfs/nfs4trace.h b/fs/nfs/nfs4trace.h
> > > index
> > > 73a6b60a848066546c2ae98b4982b0ab36bb0f73..9b56ce9f2f3dcb31a3e21d5
> > > 740bcf62aca814214 100644
> > > --- a/fs/nfs/nfs4trace.h
> > > +++ b/fs/nfs/nfs4trace.h
> > > @@ -1497,6 +1497,62 @@
> > > DECLARE_EVENT_CLASS(nfs4_inode_stateid_callback_event,
> > >  DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_recall);
> > >  DEFINE_NFS4_INODE_STATEID_CALLBACK_EVENT(nfs4_cb_layoutrecall_fi
> > > le);
> > > 
> > > +#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" })
> > 
> > Let's add NFS4_FREED_STATEID_TYPE at the end here, for after
> > 77be29b7a3f89.
> > 
> > Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
> > 
> > Ben
> 
> Thanks, good catch. I did these patches a while ago and may have
> missed
> some of the more recent changes. Anna, can you fix that up or would
> you
> rather I resend the set?

Can you please just resend?

Thanks!

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trondmy@kernel.org, trond.myklebust@hammerspace.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-06-17 18:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-03 11:42 [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Jeff Layton
2025-06-03 11:42 ` [PATCH 1/4] nfs: add cache_validity to the nfs_inode_event tracepoints Jeff Layton
2025-06-03 11:42 ` [PATCH 2/4] nfs: add a tracepoint to nfs_inode_detach_delegation_locked Jeff Layton
2025-06-03 11:42 ` [PATCH 3/4] nfs: new tracepoint in nfs_delegation_need_return Jeff Layton
2025-06-03 11:42 ` [PATCH 4/4] nfs: new tracepoint in match_stateid operation Jeff Layton
2025-06-10 13:04   ` Benjamin Coddington
2025-06-10 13:09     ` Jeff Layton
2025-06-17 18:45       ` Trond Myklebust
2025-06-10 13:05 ` [PATCH 0/4] nfs: client-side tracepoints for delegations and cache coherency Benjamin Coddington

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).