Logging cleanup

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@3662 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2011-07-07 19:56:26 +00:00
parent 1843f692de
commit dc7cd39f2b
4 changed files with 57 additions and 88 deletions

View File

@@ -38,12 +38,8 @@
#define TRACE_RTRY 0x80000000
#define TRACE_SCSI_SERIALIZING 0x40000000
/** top being the edge away from the interrupt */
#define TRACE_SND_TOP 0x20000000
#define TRACE_RCV_TOP 0x01000000
/** bottom being the edge toward the interrupt */
#define TRACE_SND_BOT 0x08000000
#define TRACE_RCV_BOT 0x04000000
#define TRACE_DATA_SEND 0x20000000
#define TRACE_DATA_RECEIVED 0x01000000
#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING)
#define trace_flag scst_trace_flag
@@ -58,10 +54,6 @@ extern unsigned long scst_trace_flag;
#define TRACE_RETRY(args...) TRACE_DBG_FLAG(TRACE_RTRY, args)
#define TRACE_SN(args...) TRACE_DBG_FLAG(TRACE_SCSI_SERIALIZING, args)
#define TRACE_SEND_TOP(args...) TRACE_DBG_FLAG(TRACE_SND_TOP, args)
#define TRACE_RECV_TOP(args...) TRACE_DBG_FLAG(TRACE_RCV_TOP, args)
#define TRACE_SEND_BOT(args...) TRACE_DBG_FLAG(TRACE_SND_BOT, args)
#define TRACE_RECV_BOT(args...) TRACE_DBG_FLAG(TRACE_RCV_BOT, args)
#else /* CONFIG_SCST_DEBUG */
@@ -74,10 +66,6 @@ extern unsigned long scst_trace_flag;
#define TRACE_RETRY(args...)
#define TRACE_SN(args...)
#define TRACE_SEND_TOP(args...)
#define TRACE_RECV_TOP(args...)
#define TRACE_SEND_BOT(args...)
#define TRACE_RECV_BOT(args...)
#endif

View File

@@ -126,10 +126,8 @@ static struct scst_trace_log scst_proc_trace_tbl[] = {
static struct scst_trace_log scst_proc_local_trace_tbl[] = {
{ TRACE_RTRY, "retry" },
{ TRACE_SCSI_SERIALIZING, "scsi_serializing" },
{ TRACE_RCV_BOT, "recv_bot" },
{ TRACE_SND_BOT, "send_bot" },
{ TRACE_RCV_TOP, "recv_top" },
{ TRACE_SND_TOP, "send_top" },
{ TRACE_DATA_SEND, "data_send" },
{ TRACE_DATA_RECEIVED, "data_received" },
{ 0, NULL }
};
#endif

View File

@@ -89,14 +89,11 @@ static struct scst_trace_log scst_trace_tbl[] = {
static struct scst_trace_log scst_local_trace_tbl[] = {
{ TRACE_RTRY, "retry" },
{ TRACE_SCSI_SERIALIZING, "scsi_serializing" },
{ TRACE_RCV_BOT, "recv_bot" },
{ TRACE_SND_BOT, "send_bot" },
{ TRACE_RCV_TOP, "recv_top" },
{ TRACE_SND_TOP, "send_top" },
{ TRACE_DATA_SEND, "data_send" },
{ TRACE_DATA_RECEIVED, "data_received" },
{ 0, NULL }
};
static void scst_read_trace_tbl(const struct scst_trace_log *tbl, char *buf,
unsigned long log_level, int *pos)
{

View File

@@ -349,8 +349,7 @@ void scst_cmd_init_done(struct scst_cmd *cmd,
"(cmd %p, sess %p)", (long long unsigned int)cmd->tag,
(long long unsigned int)cmd->lun, cmd->cdb_len,
cmd->queue_type, cmd, sess);
PRINT_BUFF_FLAG(TRACE_SCSI|TRACE_RCV_BOT, "Receiving CDB",
cmd->cdb, cmd->cdb_len);
PRINT_BUFF_FLAG(TRACE_SCSI, "Receiving CDB", cmd->cdb, cmd->cdb_len);
#ifdef CONFIG_SCST_EXTRACHECKS
if (unlikely((in_irq() || irqs_disabled())) &&
@@ -578,8 +577,6 @@ static int scst_parse_cmd(struct scst_cmd *cmd)
TRACE_DBG("Calling dev handler %s parse(%p)",
devt->name, cmd);
TRACE_BUFF_FLAG(TRACE_SND_BOT, "Parsing: ",
cmd->cdb, cmd->cdb_len);
scst_set_cur_start(cmd);
state = devt->parse(cmd);
/* Caution: cmd can be already dead here */
@@ -1417,34 +1414,6 @@ void scst_rx_data(struct scst_cmd *cmd, int status,
switch (status) {
case SCST_RX_STATUS_SUCCESS:
#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING)
if (trace_flag & TRACE_RCV_BOT) {
int i, j;
struct scatterlist *sg;
if (cmd->out_sg != NULL)
sg = cmd->out_sg;
else if (cmd->tgt_out_sg != NULL)
sg = cmd->tgt_out_sg;
else if (cmd->tgt_sg != NULL)
sg = cmd->tgt_sg;
else
sg = cmd->sg;
if (sg != NULL) {
TRACE_RECV_BOT("RX data for cmd %p "
"(sg_cnt %d, sg %p, sg[0].page %p)",
cmd, cmd->tgt_sg_cnt, sg,
(void *)sg_page(&sg[0]));
for (i = 0, j = 0; i < cmd->tgt_sg_cnt; ++i, ++j) {
if (unlikely(sg_is_chain(&sg[j]))) {
sg = sg_chain_ptr(&sg[j]);
j = 0;
}
PRINT_BUFF_FLAG(TRACE_RCV_BOT, "RX sg",
sg_virt(&sg[j]), sg[j].length);
}
}
}
#endif
cmd->state = SCST_CMD_STATE_TGT_PRE_EXEC;
#ifdef CONFIG_SCST_TEST_IO_IN_SIRQ
@@ -1496,6 +1465,42 @@ static int scst_tgt_pre_exec(struct scst_cmd *cmd)
TRACE_ENTRY();
#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING)
if (unlikely(trace_flag & TRACE_DATA_RECEIVED) &&
(cmd->data_direction & SCST_DATA_WRITE)) {
int i, j, sg_cnt;
struct scatterlist *sg;
if (cmd->out_sg != NULL) {
sg = cmd->out_sg;
sg_cnt = cmd->out_sg_cnt;
} else if (cmd->tgt_out_sg != NULL) {
sg = cmd->tgt_out_sg;
sg_cnt = cmd->tgt_out_sg_cnt;
} else if (cmd->tgt_sg != NULL) {
sg = cmd->tgt_sg;
sg_cnt = cmd->tgt_sg_cnt;
} else {
sg = cmd->sg;
sg_cnt = cmd->sg_cnt;
}
if (sg != NULL) {
PRINT_INFO("Received data for cmd %p (sg_cnt %d, "
"sg %p, sg[0].page %p)", cmd, sg_cnt, sg,
(void *)sg_page(&sg[0]));
for (i = 0, j = 0; i < sg_cnt; ++i, ++j) {
if (unlikely(sg_is_chain(&sg[j]))) {
sg = sg_chain_ptr(&sg[j]);
j = 0;
}
PRINT_INFO("sg %d", j);
PRINT_BUFFER("data", sg_virt(&sg[j]),
sg[j].length);
}
}
}
#endif
if (unlikely(cmd->resid_possible)) {
if (cmd->data_direction & SCST_DATA_WRITE) {
bool do_zero = false;
@@ -1649,26 +1654,6 @@ static void scst_cmd_done_local(struct scst_cmd *cmd, int next_state,
if (next_state == SCST_CMD_STATE_DEFAULT)
next_state = SCST_CMD_STATE_PRE_DEV_DONE;
#if defined(CONFIG_SCST_DEBUG)
if (next_state == SCST_CMD_STATE_PRE_DEV_DONE) {
if ((trace_flag & TRACE_RCV_TOP) && (cmd->sg != NULL)) {
int i, j;
struct scatterlist *sg = cmd->sg;
TRACE_RECV_TOP("Exec'd %d S/G(s) at %p sg[0].page at "
"%p", cmd->sg_cnt, sg, (void *)sg_page(&sg[0]));
for (i = 0, j = 0; i < cmd->sg_cnt; ++i, ++j) {
if (unlikely(sg_is_chain(&sg[j]))) {
sg = sg_chain_ptr(&sg[j]);
j = 0;
}
TRACE_BUFF_FLAG(TRACE_RCV_TOP,
"Exec'd sg", sg_virt(&sg[j]),
sg[j].length);
}
}
}
#endif
cmd->state = next_state;
#ifdef CONFIG_SCST_EXTRACHECKS
@@ -2519,8 +2504,6 @@ static int scst_do_real_exec(struct scst_cmd *cmd)
if (devt->exec) {
TRACE_DBG("Calling dev handler %s exec(%p)",
devt->name, cmd);
TRACE_BUFF_FLAG(TRACE_SND_TOP, "Execing: ", cmd->cdb,
cmd->cdb_len);
scst_set_cur_start(cmd);
res = devt->exec(cmd);
TRACE_DBG("Dev handler %s exec() returned %d",
@@ -3499,27 +3482,30 @@ static int scst_xmit_response(struct scst_cmd *cmd)
TRACE_DBG("Calling xmit_response(%p)", cmd);
#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING)
if (trace_flag & TRACE_SND_BOT) {
int i, j;
if (unlikely(trace_flag & TRACE_DATA_SEND) &&
(cmd->data_direction & SCST_DATA_READ)) {
int i, j, sg_cnt;
struct scatterlist *sg;
if (cmd->tgt_sg != NULL)
if (cmd->tgt_sg != NULL) {
sg = cmd->tgt_sg;
else
sg_cnt = cmd->tgt_sg_cnt;
} else {
sg = cmd->sg;
sg_cnt = cmd->sg_cnt;
}
if (sg != NULL) {
TRACE(TRACE_SND_BOT, "Xmitting data for cmd %p "
PRINT_INFO("Xmitting data for cmd %p "
"(sg_cnt %d, sg %p, sg[0].page %p, buf %p, "
"resp len %d)", cmd, cmd->tgt_sg_cnt,
sg, (void *)sg_page(&sg[0]), sg_virt(sg),
"resp len %d)", cmd, sg_cnt, sg,
(void *)sg_page(&sg[0]), sg_virt(sg),
cmd->resp_data_len);
for (i = 0, j = 0; i < cmd->tgt_sg_cnt; ++i, ++j) {
for (i = 0, j = 0; i < sg_cnt; ++i, ++j) {
if (unlikely(sg_is_chain(&sg[j]))) {
sg = sg_chain_ptr(&sg[j]);
j = 0;
}
TRACE(TRACE_SND_BOT, "sg %d", j);
PRINT_BUFF_FLAG(TRACE_SND_BOT,
"Xmitting sg", sg_virt(&sg[j]),
PRINT_INFO("sg %d", j);
PRINT_BUFFER("data", sg_virt(&sg[j]),
sg[j].length);
}
}