]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
smb: client: introduce and use smbd_debug_proc_show()
authorStefan Metzmacher <metze@samba.org>
Tue, 21 Oct 2025 19:07:26 +0000 (21:07 +0200)
committerSteve French <stfrench@microsoft.com>
Thu, 16 Apr 2026 02:58:22 +0000 (21:58 -0500)
This will allow us to make struct smbdirect_socket private
in future.

Cc: Steve French <smfrench@gmail.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Long Li <longli@microsoft.com>
Cc: Namjae Jeon <linkinjeon@kernel.org>
Cc: linux-cifs@vger.kernel.org
Cc: samba-technical@lists.samba.org
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifs_debug.c
fs/smb/client/smbdirect.c
fs/smb/client/smbdirect.h

index 217444e3e6d0181f44565bfb98db8b1d7a072438..0691d2a3e04b0fafee7c22fb0a05d3de14e9af1b 100644 (file)
@@ -23,7 +23,6 @@
 #endif
 #ifdef CONFIG_CIFS_SMB_DIRECT
 #include "smbdirect.h"
-#include "../common/smbdirect/smbdirect_pdu.h"
 #endif
 #include "cifs_swn.h"
 #include "cached_dir.h"
@@ -452,11 +451,6 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
        c = 0;
        spin_lock(&cifs_tcp_ses_lock);
        list_for_each_entry(server, &cifs_tcp_ses_list, tcp_ses_list) {
-#ifdef CONFIG_CIFS_SMB_DIRECT
-               struct smbdirect_socket *sc;
-               struct smbdirect_socket_parameters *sp;
-#endif
-
                /* channel info will be printed as a part of sessions below */
                if (SERVER_IS_CHAN(server))
                        continue;
@@ -471,66 +465,7 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
                seq_printf(m, "\nClientGUID: %pUL", server->client_guid);
                spin_unlock(&server->srv_lock);
 #ifdef CONFIG_CIFS_SMB_DIRECT
-               if (!server->rdma)
-                       goto skip_rdma;
-
-               if (!server->smbd_conn) {
-                       seq_printf(m, "\nSMBDirect transport not available");
-                       goto skip_rdma;
-               }
-               sc = &server->smbd_conn->socket;
-               sp = &sc->parameters;
-
-               seq_printf(m, "\nSMBDirect protocol version: 0x%x "
-                       "transport status: %s (%u)",
-                       SMBDIRECT_V1,
-                       smbdirect_socket_status_string(sc->status),
-                       sc->status);
-               seq_printf(m, "\nConn receive_credit_max: %u "
-                       "send_credit_target: %u max_send_size: %u",
-                       sp->recv_credit_max,
-                       sp->send_credit_target,
-                       sp->max_send_size);
-               seq_printf(m, "\nConn max_fragmented_recv_size: %u "
-                       "max_fragmented_send_size: %u max_receive_size:%u",
-                       sp->max_fragmented_recv_size,
-                       sp->max_fragmented_send_size,
-                       sp->max_recv_size);
-               seq_printf(m, "\nConn keep_alive_interval: %u "
-                       "max_readwrite_size: %u rdma_readwrite_threshold: %u",
-                       sp->keepalive_interval_msec * 1000,
-                       sp->max_read_write_size,
-                       server->rdma_readwrite_threshold);
-               seq_printf(m, "\nDebug count_get_receive_buffer: %llu "
-                       "count_put_receive_buffer: %llu count_send_empty: %llu",
-                       sc->statistics.get_receive_buffer,
-                       sc->statistics.put_receive_buffer,
-                       sc->statistics.send_empty);
-               seq_printf(m, "\nRead Queue "
-                       "count_enqueue_reassembly_queue: %llu "
-                       "count_dequeue_reassembly_queue: %llu "
-                       "reassembly_data_length: %u "
-                       "reassembly_queue_length: %u",
-                       sc->statistics.enqueue_reassembly_queue,
-                       sc->statistics.dequeue_reassembly_queue,
-                       sc->recv_io.reassembly.data_length,
-                       sc->recv_io.reassembly.queue_length);
-               seq_printf(m, "\nCurrent Credits send_credits: %u "
-                       "receive_credits: %u receive_credit_target: %u",
-                       atomic_read(&sc->send_io.credits.count),
-                       atomic_read(&sc->recv_io.credits.count),
-                       sc->recv_io.credits.target);
-               seq_printf(m, "\nPending send_pending: %u ",
-                       atomic_read(&sc->send_io.pending.count));
-               seq_printf(m, "\nMR responder_resources: %u "
-                       "max_frmr_depth: %u mr_type: 0x%x",
-                       sp->responder_resources,
-                       sp->max_frmr_depth,
-                       sc->mr_io.type);
-               seq_printf(m, "\nMR mr_ready_count: %u mr_used_count: %u",
-                       atomic_read(&sc->mr_io.ready.count),
-                       atomic_read(&sc->mr_io.used.count));
-skip_rdma:
+               smbd_debug_proc_show(server, m);
 #endif
                seq_printf(m, "\nNumber of credits: %d,%d,%d Dialect 0x%x",
                        server->credits,
index 93a91d4e0da5949988c6ffd267f0e376c2dbda31..c229f493edb4f6d8ea3b26b0171a35b8066130ee 100644 (file)
@@ -1310,3 +1310,18 @@ void smbd_deregister_mr(struct smbdirect_mr_io *mr)
 {
        smbdirect_connection_deregister_mr_io(mr);
 }
+
+void smbd_debug_proc_show(struct TCP_Server_Info *server, struct seq_file *m)
+{
+       if (!server->rdma)
+               return;
+
+       if (!server->smbd_conn) {
+               seq_puts(m, "\nSMBDirect transport not available");
+               return;
+       }
+
+       smbdirect_connection_legacy_debug_proc_show(&server->smbd_conn->socket,
+                                                   server->rdma_readwrite_threshold,
+                                                   m);
+}
index 09f7dd14b2c10a95c05a51c6869eb60b3062afa3..7986e87bf384a27a2430699d060c8cbe39be014c 100644 (file)
@@ -64,6 +64,8 @@ void smbd_mr_fill_buffer_descriptor(struct smbdirect_mr_io *mr,
                                    struct smbdirect_buffer_descriptor_v1 *v1);
 void smbd_deregister_mr(struct smbdirect_mr_io *mr);
 
+void smbd_debug_proc_show(struct TCP_Server_Info *server, struct seq_file *m);
+
 #else
 #define cifs_rdma_enabled(server)      0
 struct smbd_connection {};