ceph: additional debugfs output
MDS session state and client global ID is useful instrumentation when testing. Signed-off-by: John Spray <john.spray@redhat.com>
This commit is contained in:
parent
a687ecaf50
commit
14ed97033d
|
@ -158,10 +158,47 @@ static int dentry_lru_show(struct seq_file *s, void *ptr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int mds_sessions_show(struct seq_file *s, void *ptr)
|
||||||
|
{
|
||||||
|
struct ceph_fs_client *fsc = s->private;
|
||||||
|
struct ceph_mds_client *mdsc = fsc->mdsc;
|
||||||
|
struct ceph_auth_client *ac = fsc->client->monc.auth;
|
||||||
|
struct ceph_options *opt = fsc->client->options;
|
||||||
|
int mds = -1;
|
||||||
|
|
||||||
|
mutex_lock(&mdsc->mutex);
|
||||||
|
|
||||||
|
/* The 'num' portion of an 'entity name' */
|
||||||
|
seq_printf(s, "global_id %llu\n", ac->global_id);
|
||||||
|
|
||||||
|
/* The -o name mount argument */
|
||||||
|
seq_printf(s, "name \"%s\"\n", opt->name ? opt->name : "");
|
||||||
|
|
||||||
|
/* The list of MDS session rank+state */
|
||||||
|
for (mds = 0; mds < mdsc->max_sessions; mds++) {
|
||||||
|
struct ceph_mds_session *session =
|
||||||
|
__ceph_lookup_mds_session(mdsc, mds);
|
||||||
|
if (!session) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
mutex_unlock(&mdsc->mutex);
|
||||||
|
seq_printf(s, "mds.%d %s\n",
|
||||||
|
session->s_mds,
|
||||||
|
ceph_session_state_name(session->s_state));
|
||||||
|
|
||||||
|
ceph_put_mds_session(session);
|
||||||
|
mutex_lock(&mdsc->mutex);
|
||||||
|
}
|
||||||
|
mutex_unlock(&mdsc->mutex);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
CEPH_DEFINE_SHOW_FUNC(mdsmap_show)
|
CEPH_DEFINE_SHOW_FUNC(mdsmap_show)
|
||||||
CEPH_DEFINE_SHOW_FUNC(mdsc_show)
|
CEPH_DEFINE_SHOW_FUNC(mdsc_show)
|
||||||
CEPH_DEFINE_SHOW_FUNC(caps_show)
|
CEPH_DEFINE_SHOW_FUNC(caps_show)
|
||||||
CEPH_DEFINE_SHOW_FUNC(dentry_lru_show)
|
CEPH_DEFINE_SHOW_FUNC(dentry_lru_show)
|
||||||
|
CEPH_DEFINE_SHOW_FUNC(mds_sessions_show)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -193,6 +230,7 @@ void ceph_fs_debugfs_cleanup(struct ceph_fs_client *fsc)
|
||||||
debugfs_remove(fsc->debugfs_bdi);
|
debugfs_remove(fsc->debugfs_bdi);
|
||||||
debugfs_remove(fsc->debugfs_congestion_kb);
|
debugfs_remove(fsc->debugfs_congestion_kb);
|
||||||
debugfs_remove(fsc->debugfs_mdsmap);
|
debugfs_remove(fsc->debugfs_mdsmap);
|
||||||
|
debugfs_remove(fsc->debugfs_mds_sessions);
|
||||||
debugfs_remove(fsc->debugfs_caps);
|
debugfs_remove(fsc->debugfs_caps);
|
||||||
debugfs_remove(fsc->debugfs_mdsc);
|
debugfs_remove(fsc->debugfs_mdsc);
|
||||||
debugfs_remove(fsc->debugfs_dentry_lru);
|
debugfs_remove(fsc->debugfs_dentry_lru);
|
||||||
|
@ -231,6 +269,14 @@ int ceph_fs_debugfs_init(struct ceph_fs_client *fsc)
|
||||||
if (!fsc->debugfs_mdsmap)
|
if (!fsc->debugfs_mdsmap)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
fsc->debugfs_mds_sessions = debugfs_create_file("mds_sessions",
|
||||||
|
0600,
|
||||||
|
fsc->client->debugfs_dir,
|
||||||
|
fsc,
|
||||||
|
&mds_sessions_show_fops);
|
||||||
|
if (!fsc->debugfs_mds_sessions)
|
||||||
|
goto out;
|
||||||
|
|
||||||
fsc->debugfs_mdsc = debugfs_create_file("mdsc",
|
fsc->debugfs_mdsc = debugfs_create_file("mdsc",
|
||||||
0600,
|
0600,
|
||||||
fsc->client->debugfs_dir,
|
fsc->client->debugfs_dir,
|
||||||
|
|
|
@ -95,6 +95,7 @@ struct ceph_fs_client {
|
||||||
struct dentry *debugfs_congestion_kb;
|
struct dentry *debugfs_congestion_kb;
|
||||||
struct dentry *debugfs_bdi;
|
struct dentry *debugfs_bdi;
|
||||||
struct dentry *debugfs_mdsc, *debugfs_mdsmap;
|
struct dentry *debugfs_mdsc, *debugfs_mdsmap;
|
||||||
|
struct dentry *debugfs_mds_sessions;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CEPH_FSCACHE
|
#ifdef CONFIG_CEPH_FSCACHE
|
||||||
|
|
Loading…
Reference in New Issue