pnfs: add pnfs_ds_connect trace point
This tracepoint aims to expose pnfs DS connect status Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de> Reviewed-by: Benjamin Coddington <bcodding@redhat.com> Link: https://lore.kernel.org/r/20250610151246.9147-1-tigran.mkrtchyan@desy.de Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
committed by
Trond Myklebust
parent
c1b0b9d79f
commit
a9e2183720
@@ -26,6 +26,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(pnfs_mds_fallback_read_done);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(pnfs_mds_fallback_write_done);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(pnfs_mds_fallback_read_pagelist);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(pnfs_mds_fallback_write_pagelist);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(pnfs_ds_connect);
|
||||
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(ff_layout_read_error);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(ff_layout_write_error);
|
||||
|
||||
@@ -274,6 +274,32 @@ TRACE_EVENT(nfs4_cb_offload,
|
||||
show_nfs_stable_how(__entry->cb_how)
|
||||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(pnfs_ds_connect,
|
||||
TP_PROTO(
|
||||
char *ds_remotestr,
|
||||
int status
|
||||
),
|
||||
|
||||
TP_ARGS(ds_remotestr, status),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__string(ds_ips, ds_remotestr)
|
||||
__field(int, status)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_str(ds_ips);
|
||||
__entry->status = status;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
"ds_ips=%s, status=%d",
|
||||
__get_str(ds_ips),
|
||||
__entry->status
|
||||
)
|
||||
);
|
||||
|
||||
#endif /* CONFIG_NFS_V4_1 */
|
||||
|
||||
TRACE_EVENT(nfs4_setup_sequence,
|
||||
|
||||
+9
-5
@@ -17,6 +17,7 @@
|
||||
#include "internal.h"
|
||||
#include "pnfs.h"
|
||||
#include "netns.h"
|
||||
#include "nfs4trace.h"
|
||||
|
||||
#define NFSDBG_FACILITY NFSDBG_PNFS
|
||||
|
||||
@@ -1007,8 +1008,10 @@ int nfs4_pnfs_ds_connect(struct nfs_server *mds_srv, struct nfs4_pnfs_ds *ds,
|
||||
err = nfs4_wait_ds_connect(ds);
|
||||
if (err || ds->ds_clp)
|
||||
goto out;
|
||||
if (nfs4_test_deviceid_unavailable(devid))
|
||||
return -ENODEV;
|
||||
if (nfs4_test_deviceid_unavailable(devid)) {
|
||||
err = -ENODEV;
|
||||
goto out;
|
||||
}
|
||||
} while (test_and_set_bit(NFS4DS_CONNECTING, &ds->ds_state) != 0);
|
||||
|
||||
if (ds->ds_clp)
|
||||
@@ -1038,11 +1041,12 @@ out:
|
||||
if (!ds->ds_clp || !nfs_client_init_is_complete(ds->ds_clp)) {
|
||||
WARN_ON_ONCE(ds->ds_clp ||
|
||||
!nfs4_test_deviceid_unavailable(devid));
|
||||
return -EINVAL;
|
||||
}
|
||||
err = nfs_client_init_status(ds->ds_clp);
|
||||
err = -EINVAL;
|
||||
} else
|
||||
err = nfs_client_init_status(ds->ds_clp);
|
||||
}
|
||||
|
||||
trace_pnfs_ds_connect(ds->ds_remotestr, err);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nfs4_pnfs_ds_connect);
|
||||
|
||||
Reference in New Issue
Block a user