Skip to content
Snippets Groups Projects
Commit 1377b92e authored by Robert Read's avatar Robert Read
Browse files

Branch HEAD

b=1819
i=adilger
i=nathan

Add an import file to the osc, mdc, and mgc proc dir.
parent 837eab06
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,13 @@ tbd Sun Microsystems, Inc.
removed cwd "./" (refer to Bugzilla 14399).
* File join has been disabled in this release, refer to Bugzilla 16929.
Severity : enhancement
Bugzilla : 1819
Description: Add /proc entry for import status
Details : The mdc, osc, and mgc import directories now have
an import directory that contains useful import data for debugging
connection problems.
Severity : enhancement
Bugzilla : 15966
Description: Re-disable certain /proc logging
......
......@@ -474,6 +474,8 @@ extern int lprocfs_rd_server_uuid(char *page, char **start, off_t off,
int count, int *eof, void *data);
extern int lprocfs_rd_conn_uuid(char *page, char **start, off_t off,
int count, int *eof, void *data);
extern int lprocfs_rd_import(char *page, char **start, off_t off, int count,
int *eof, void *data);
extern int lprocfs_rd_connect_flags(char *page, char **start, off_t off,
int count, int *eof, void *data);
extern int lprocfs_rd_num_exports(char *page, char **start, off_t off,
......@@ -712,6 +714,8 @@ static inline int lprocfs_rd_server_uuid(char *page, char **start, off_t off,
static inline int lprocfs_rd_conn_uuid(char *page, char **start, off_t off,
int count, int *eof, void *data)
{ return 0; }
static inline int lprocfs_rd_import(char *page, char **start, off_t off, int count,
int *eof, void *data) { return 0; }
static inline int lprocfs_rd_connect_flags(char *page, char **start, off_t off,
int count, int *eof, void *data)
{ return 0; }
......
......@@ -91,6 +91,7 @@ static struct lprocfs_vars lprocfs_mdc_obd_vars[] = {
{ "max_rpcs_in_flight", mdc_rd_max_rpcs_in_flight,
mdc_wr_max_rpcs_in_flight, 0 },
{ "timeouts", lprocfs_rd_timeouts, 0, 0 },
{ "import", lprocfs_rd_import, 0, 0 },
{ 0 }
};
......
......@@ -48,6 +48,7 @@ static struct lprocfs_vars lprocfs_mgc_obd_vars[] = {
{ "connect_flags", lprocfs_rd_connect_flags, 0, 0 },
{ "mgs_server_uuid", lprocfs_rd_server_uuid, 0, 0 },
{ "mgs_conn_uuid", lprocfs_rd_conn_uuid, 0, 0 },
{ "import", lprocfs_rd_import, 0, 0 },
{ 0 }
};
......
......@@ -641,6 +641,73 @@ int lprocfs_rd_conn_uuid(char *page, char **start, off_t off, int count,
return rc;
}
#define flag2str(flag) \
if (imp->imp_##flag && max - len > 0) \
len += snprintf(str + len, max - len, " " #flag);
/**
* Append a space separated list of current set flags to str.
*/
static int obd_import_flags2str(struct obd_import *imp, char *str,
int max)
{
int len = 0;
if (imp->imp_obd->obd_no_recov)
len += snprintf(str, max - len, " no_recov");
flag2str(invalid);
flag2str(deactive);
flag2str(replayable);
flag2str(pingable);
flag2str(recon_bk);
flag2str(last_recon);
return len;
}
#undef flags2str
int lprocfs_rd_import(char *page, char **start, off_t off, int count,
int *eof, void *data)
{
struct obd_device *obd = (struct obd_device *)data;
struct obd_import *imp;
char *imp_state_name = NULL;
int rc = 0;
LASSERT(obd != NULL);
LPROCFS_CLIMP_CHECK(obd);
imp = obd->u.cli.cl_import;
imp_state_name = ptlrpc_import_state_name(imp->imp_state);
*eof = 1;
rc = snprintf(page, count,
"import: %s\n"
" target: %s@%s\n"
" state: %s\n"
" inflight: %u\n"
" conn_cnt: %u\n"
" generation: %u\n"
" inval_cnt: %u\n"
" last_replay_transno: "LPU64"\n"
" peer_committed_transno: "LPU64"\n"
" last_trasno_checked: "LPU64"\n"
" flags:",
obd->obd_name,
obd2cli_tgt(obd), imp->imp_connection->c_remote_uuid.uuid,
imp_state_name,
atomic_read(&imp->imp_inflight),
imp->imp_conn_cnt,
imp->imp_generation,
atomic_read(&imp->imp_inval_count),
imp->imp_last_replay_transno,
imp->imp_peer_committed_transno,
imp->imp_last_transno_checked);
rc += obd_import_flags2str(imp, page + rc, count - rc);
rc += snprintf(page+rc, count - rc, "\n");
LPROCFS_CLIMP_EXIT(obd);
return rc;
}
int lprocfs_at_hist_helper(char *page, int count, int rc,
struct adaptive_timeout *at)
{
......@@ -2102,6 +2169,7 @@ EXPORT_SYMBOL(lprocfs_rd_conn_uuid);
EXPORT_SYMBOL(lprocfs_rd_num_exports);
EXPORT_SYMBOL(lprocfs_rd_numrefs);
EXPORT_SYMBOL(lprocfs_at_hist_helper);
EXPORT_SYMBOL(lprocfs_rd_import);
EXPORT_SYMBOL(lprocfs_rd_timeouts);
EXPORT_SYMBOL(lprocfs_rd_blksize);
EXPORT_SYMBOL(lprocfs_rd_kbytestotal);
......
......@@ -510,6 +510,7 @@ static struct lprocfs_vars lprocfs_osc_obd_vars[] = {
{ "checksum_type", osc_rd_checksum_type, osc_wd_checksum_type, 0 },
{ "resend_count", osc_rd_resend_count, osc_wr_resend_count, 0},
{ "timeouts", lprocfs_rd_timeouts, 0, 0 },
{ "import", lprocfs_rd_import, 0, 0 },
{ 0 }
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment