cifs: Add a tracepoint to track credits involved in R/W requests
authorDavid Howells <dhowells@redhat.com>
Thu, 23 May 2024 09:01:08 +0000 (10:01 +0100)
committerSteve French <stfrench@microsoft.com>
Fri, 19 Jul 2024 16:08:57 +0000 (11:08 -0500)
commit519be989717c5bffaed1dc14a439e3872cb4bb8d
tree8e59a2ac9f2f2983d11771f8f5ae2b27f540f3cb
parent61ea6b3a3104fcd66364282391dd2152bc4c129a
cifs: Add a tracepoint to track credits involved in R/W requests

Add a tracepoint to track the credit changes and server in_flight value
involved in the lifetime of a R/W request, logging it against the
request/subreq debugging ID.  This requires the debugging IDs to be
recorded in the cifs_credits struct.

The tracepoint can be enabled with:

echo 1 >/sys/kernel/debug/tracing/events/cifs/smb3_rw_credits/enable

Also add a three-state flag to struct cifs_credits to note if we're
interested in determining when the in_flight contribution ends and, if so,
to track whether we've decremented the contribution yet.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cifs@vger.kernel.org
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifsglob.h
fs/smb/client/file.c
fs/smb/client/smb1ops.c
fs/smb/client/smb2ops.c
fs/smb/client/smb2pdu.c
fs/smb/client/trace.h
fs/smb/client/transport.c