- Logging cleanups. Particularly, TRACE_MGMT_MINOR level was removed

- Docs updates
 - Other minor fixes and cleanups



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1452 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Vladislav Bolkhovitin
2010-01-12 13:29:01 +00:00
parent 2610bf1d0a
commit 4a2fcb870b
24 changed files with 135 additions and 127 deletions

View File

@@ -28,8 +28,12 @@ If you experience kernel crash, hang, etc., you should follow
REPORTING-BUGS file from your kernel source tree.
For most questions it is very desirable if you attach to your message
full kernel log from target since it's booted. It will allow us to see
your target and SCST configurations.
full kernel log from the target since it's booted. Note, *SINCE IT
BOOTED*. Please don't try to be smart and filter out what's you
think isn't needed. What's usually removed could allow us to see the
target and SCST configurations.
Don't forget to compress your log using "bzip2 -9".
Example of a really bad question:

View File

@@ -28,8 +28,12 @@ If you experience kernel crash, hang, etc., you should follow
REPORTING-BUGS file from your kernel source tree.
For most questions it is very desirable if you attach to your message
full kernel log from target since it's booted. It will allow us to see
your target and SCST configurations.
full kernel log from the target since it's booted. Note, *SINCE IT
BOOTED*. Please don't try to be smart and filter out what's you
think isn't needed. What's usually removed could allow us to see the
target and SCST configurations.
Don't forget to compress your log using "bzip2 -9".
Example of a really bad question:

View File

@@ -4,22 +4,15 @@ iSCSI SCST target driver
Version 1.0.2, XX XXXXX 2009
----------------------------
This driver is a forked with all respects version of iSCSI Enterprise
Target (IET) (http://iscsitarget.sourceforge.net/) with updates to work
over SCST as well as with many improvements and bugfixes (see ChangeLog
file). The reason of fork is that the necessary changes are intrusive
and with the current IET merge policy, where only simple bugfix-like
patches, which doesn't touch the core code, could be merged, it is very
unlikely that they will be merged in the main IET trunk.
ISCSI-SCST is a deeply reworked fork of iSCSI Enterprise Target (IET)
(http://iscsitarget.sourceforge.net). Reasons of the fork were:
To let it be installed and work at the same host together with IET
simultaneously all the driver's modules and files were renamed:
- To be able to use full power of SCST core.
* ietd.conf -> iscsi-scstd.conf
* ietadm -> iscsi-scst-adm
* ietd -> iscsi-scstd
* iscsi-target -> iscsi-scst
* iscsi-target.ko -> iscsi-scst.ko
- To fix all the problems, corner cases issues and iSCSI standard
violations which IET has.
See more info at http://scst.sourceforge.net/target_iscsi.html.
This version is compatible with SCST version 1.0.2 and higher.

View File

@@ -1331,16 +1331,21 @@ static void iscsi_set_resid(struct iscsi_cmnd *rsp, bool bufflen_set)
static int iscsi_preliminary_complete(struct iscsi_cmnd *req,
struct iscsi_cmnd *orig_req, bool get_data)
{
struct iscsi_hdr *req_hdr = &req->pdu.bhs;
int res = 0;
bool set_r2t_len;
TRACE_ENTRY();
TRACE_DBG_FLAG(iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(orig_req),
"Prelim completed req %p, orig_req %p (FINAL %x, "
"outstanding_r2t %d)", req, orig_req,
(req_hdr->flags & ISCSI_CMD_FINAL), orig_req->outstanding_r2t);
#ifdef CONFIG_SCST_DEBUG
{
struct iscsi_hdr *req_hdr = &req->pdu.bhs;
TRACE_DBG_FLAG(iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(orig_req),
"Prelim completed req %p, orig_req %p (FINAL %x, "
"outstanding_r2t %d)", req, orig_req,
(req_hdr->flags & ISCSI_CMD_FINAL),
orig_req->outstanding_r2t);
}
#endif
iscsi_extracheck_is_rd_thread(req->conn);
sBUG_ON(req->parent_req != NULL);
@@ -1933,7 +1938,7 @@ static int data_out_start(struct iscsi_cmnd *cmnd)
* we received all related PDUs from the initiator or timeout
* them. Let's quietly drop such PDUs.
*/
TRACE(TRACE_MGMT_MINOR, "Unable to find scsi task ITT %x",
TRACE_MGMT_DBG("Unable to find scsi task ITT %x",
cmnd_itt(cmnd));
res = iscsi_preliminary_complete(cmnd, cmnd, true);
goto out;
@@ -2312,12 +2317,11 @@ static void execute_task_management(struct iscsi_cmnd *req)
struct iscsi_session *sess = conn->session;
struct iscsi_task_mgt_hdr *req_hdr =
(struct iscsi_task_mgt_hdr *)&req->pdu.bhs;
int rc, status, function = req_hdr->function & ISCSI_FUNCTION_MASK;
int rc, status = ISCSI_RESPONSE_FUNCTION_REJECTED;
int function = req_hdr->function & ISCSI_FUNCTION_MASK;
struct scst_rx_mgmt_params params;
TRACE((function == ISCSI_FUNCTION_ABORT_TASK) ?
TRACE_MGMT_MINOR : TRACE_MGMT,
"TM fn %d", function);
TRACE(TRACE_MGMT, "TM fn %d", function);
TRACE_MGMT_DBG("TM req %p, ITT %x, RTT %x, sn %u, con %p", req,
cmnd_itt(req), req_hdr->rtt, req_hdr->cmd_sn, conn);
@@ -2330,7 +2334,7 @@ static void execute_task_management(struct iscsi_cmnd *req)
if (sess->tm_rsp != NULL) {
struct iscsi_cmnd *tm_rsp = sess->tm_rsp;
TRACE(TRACE_MGMT_MINOR, "Dropping delayed TM rsp %p", tm_rsp);
TRACE_MGMT_DBG("Dropping delayed TM rsp %p", tm_rsp);
sess->tm_rsp = NULL;
sess->tm_active--;
@@ -3105,8 +3109,9 @@ static int iscsi_xmit_response(struct scst_cmd *scst_cmd)
req->sg_cnt);
EXTRACHECKS_BUG_ON(req->hashed);
if (req->main_rsp != NULL)
if (req->main_rsp != NULL) {
EXTRACHECKS_BUG_ON(cmnd_opcode(req->main_rsp) != ISCSI_OP_REJECT);
}
if (unlikely((req->bufflen != 0) && !is_send_status)) {
PRINT_CRIT_ERROR("%s", "Sending DATA without STATUS is "
@@ -3199,7 +3204,7 @@ static void iscsi_check_send_delayed_tm_resp(struct iscsi_session *sess)
if (iscsi_is_delay_tm_resp(tm_rsp))
goto out;
TRACE(TRACE_MGMT_MINOR, "Sending delayed rsp %p", tm_rsp);
TRACE_MGMT_DBG("Sending delayed rsp %p", tm_rsp);
sess->tm_rsp = NULL;
sess->tm_active--;
@@ -3229,9 +3234,7 @@ static void iscsi_send_task_mgmt_resp(struct iscsi_cmnd *req, int status)
TRACE_ENTRY();
TRACE_MGMT_DBG("TM req %p finished", req);
TRACE((req_hdr->function == ISCSI_FUNCTION_ABORT_TASK) ?
TRACE_MGMT_MINOR : TRACE_MGMT,
"TM fn %d finished, status %d", fn, status);
TRACE(TRACE_MGMT, "TM fn %d finished, status %d", fn, status);
rsp = iscsi_alloc_rsp(req);
rsp_hdr = (struct iscsi_task_rsp_hdr *)&rsp->pdu.bhs;
@@ -3250,9 +3253,9 @@ static void iscsi_send_task_mgmt_resp(struct iscsi_cmnd *req, int status)
spin_lock(&sess->sn_lock);
if (iscsi_is_delay_tm_resp(rsp)) {
TRACE(TRACE_MGMT_MINOR, "Delaying TM fn %d response %p "
"(req %p), because not all affected commands received "
"(TM cmd sn %u, exp sn %u)",
TRACE_MGMT_DBG("Delaying TM fn %d response %p "
"(req %p), because not all affected commands "
"received (TM cmd sn %u, exp sn %u)",
req_hdr->function & ISCSI_FUNCTION_MASK, rsp, req,
req_hdr->cmd_sn, sess->exp_cmd_sn);
sess->tm_rsp = rsp;
@@ -3446,7 +3449,8 @@ static int iscsi_target_release(struct scst_tgt *scst_tgt)
return 0;
}
#ifndef CONFIG_SCST_PROC
#if !defined(CONFIG_SCST_PROC) && \
(defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING))
static struct scst_trace_log iscsi_local_trace_tbl[] = {
{ TRACE_D_WRITE, "d_write" },
{ TRACE_CONN_OC, "conn" },
@@ -3476,7 +3480,8 @@ struct scst_tgt_template iscsi_template = {
#if defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING)
.default_trace_flags = ISCSI_DEFAULT_LOG_FLAGS,
.trace_flags = &trace_flag,
#ifndef CONFIG_SCST_PROC
#if !defined(CONFIG_SCST_PROC) && \
(defined(CONFIG_SCST_DEBUG) || defined(CONFIG_SCST_TRACING))
.trace_tbl = iscsi_local_trace_tbl,
.trace_tbl_help = ISCSI_TRACE_TLB_HELP,
#endif

View File

@@ -29,11 +29,11 @@
#ifdef CONFIG_SCST_DEBUG
#define ISCSI_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_LINE | TRACE_PID | \
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | TRACE_MGMT_DEBUG | \
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_DEBUG | \
TRACE_MINOR | TRACE_SPECIAL | TRACE_CONN_OC)
#else
#define ISCSI_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \
TRACE_MINOR | TRACE_SPECIAL)
TRACE_SPECIAL)
#endif
#ifdef CONFIG_SCST_DEBUG

View File

@@ -454,8 +454,7 @@ static void close_conn(struct iscsi_conn *conn)
spin_lock(&session->sn_lock);
if (session->tm_rsp && session->tm_rsp->conn == conn) {
struct iscsi_cmnd *tm_rsp = session->tm_rsp;
TRACE(TRACE_MGMT_MINOR, "Dropping delayed TM rsp %p",
tm_rsp);
TRACE_MGMT_DBG("Dropping delayed TM rsp %p", tm_rsp);
session->tm_rsp = NULL;
session->tm_active--;
WARN_ON(session->tm_active < 0);
@@ -647,6 +646,7 @@ static struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn)
}
if (unlikely(cmnd_opcode(cmnd) == ISCSI_OP_SCSI_TASK_MGT_RSP)) {
#ifdef CONFIG_SCST_DEBUG
struct iscsi_task_mgt_hdr *req_hdr =
(struct iscsi_task_mgt_hdr *)&cmnd->parent_req->pdu.bhs;
struct iscsi_task_rsp_hdr *rsp_hdr =
@@ -655,6 +655,7 @@ static struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn)
"fn %d, parent_req %p)", cmnd, rsp_hdr->response,
req_hdr->function & ISCSI_FUNCTION_MASK,
cmnd->parent_req);
#endif
}
return cmnd;

View File

@@ -773,7 +773,7 @@ static int mvst_xmit_response(struct scst_cmd *scst_cmd)
scst_sess_get_tgt_priv(scst_cmd_get_session(scst_cmd));
if (unlikely(scst_cmd_aborted(scst_cmd))) {
TRACE(TRACE_MGMT_MINOR, "mvst tgt: terminating exchange "
TRACE_MGMT_DBG("mvst tgt: terminating exchange "
"for aborted scst_cmd=%p (tag=%lld)",
scst_cmd, scst_cmd_get_tag(scst_cmd));

View File

@@ -33,14 +33,12 @@ struct mvs_info;
#ifdef MV_DEBUG
#ifdef CONFIG_SCST_DEBUG
#define MVST_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_PID | \
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | \
TRACE_MGMT_DEBUG | TRACE_MINOR | TRACE_SPECIAL | \
TRACE_SCSI | TRACE_DEBUG)
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_DEBUG | \
TRACE_MINOR | TRACE_SPECIAL | TRACE_SCSI | TRACE_DEBUG)
#else
# ifdef CONFIG_SCST_TRACING
#define MVST_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | \
TRACE_MGMT | TRACE_MINOR | \
TRACE_SPECIAL)
TRACE_MGMT | TRACE_SPECIAL)
# endif
#endif
#else

View File

@@ -28,8 +28,12 @@ If you experience kernel crash, hang, etc., you should follow
REPORTING-BUGS file from your kernel source tree.
For most questions it is very desirable if you attach to your message
full kernel log from target since it's booted. It will allow us to see
your target and SCST configurations.
full kernel log from the target since it's booted. Note, *SINCE IT
BOOTED*. Please don't try to be smart and filter out what's you
think isn't needed. What's usually removed could allow us to see the
target and SCST configurations.
Don't forget to compress your log using "bzip2 -9".
Example of a really bad question:

View File

@@ -55,11 +55,11 @@
#ifdef CONFIG_SCST_DEBUG
#define Q2T_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_LINE | TRACE_PID | \
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | \
TRACE_MGMT_DEBUG | TRACE_MINOR | TRACE_SPECIAL)
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_DEBUG | \
TRACE_MINOR | TRACE_SPECIAL)
#else
# ifdef CONFIG_SCST_TRACING
#define Q2T_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MINOR | \
#define Q2T_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \
TRACE_SPECIAL)
# endif
#endif
@@ -1153,7 +1153,7 @@ static void q24_handle_abts(scsi_qla_host_t *ha, abts24_recv_entry_t *abts)
goto out_err;
}
TRACE(TRACE_MGMT_MINOR, "qla2x00tgt(%ld): task abort (s_id=%x:%x:%x, "
TRACE(TRACE_MGMT, "qla2x00tgt(%ld): task abort (s_id=%x:%x:%x, "
"tag=%d, param=%x)", ha->instance, abts->fcp_hdr_le.s_id[0],
abts->fcp_hdr_le.s_id[1], abts->fcp_hdr_le.s_id[2], tag,
le32_to_cpu(abts->fcp_hdr_le.parameter));
@@ -1801,7 +1801,7 @@ static int q2t_pre_xmit_response(struct q2t_cmd *cmd,
TRACE_ENTRY();
if (unlikely(cmd->aborted)) {
TRACE(TRACE_MGMT_MINOR, "qla2x00tgt(%ld): terminating exchange "
TRACE_MGMT_DBG("qla2x00tgt(%ld): terminating exchange "
"for aborted cmd=%p (scst_cmd=%p, tag=%d)",
ha->instance, cmd, scst_cmd, cmd->tag);
@@ -2822,8 +2822,9 @@ static void q2t_do_ctio_completion(scsi_qla_host_t *ha, uint32_t handle,
case CTIO_ABORTED:
case CTIO_TIMEOUT:
case CTIO_INVALID_RX_ID:
/* they are OK */
TRACE(TRACE_MGMT_MINOR, "qla2x00tgt(%ld): CTIO with "
/* They are OK */
TRACE(TRACE_MINOR_AND_MGMT_DBG,
"qla2x00tgt(%ld): CTIO with "
"status %#x received, state %x, scst_cmd %p, "
"op %x (LIP_RESET=e, ABORTED=2, TARGET_RESET=17, "
"TIMEOUT=b, INVALID_RX_ID=8)", ha->instance,
@@ -3892,8 +3893,7 @@ static void q2t_prepare_srr_imm(scsi_qla_host_t *ha, void *iocb)
tgt->imm_srr_id++;
TRACE(TRACE_MGMT_MINOR, "qla2x00tgt(%ld): IMM NTFY SRR "
"received", ha->instance);
TRACE(TRACE_MGMT, "qla2x00tgt(%ld): SRR received", ha->instance);
imm = kzalloc(sizeof(*imm), GFP_ATOMIC);
if (imm != NULL) {
@@ -4076,7 +4076,7 @@ static void q2t_handle_imm_notify(scsi_qla_host_t *ha, void *iocb)
break;
case IMM_NTFY_ABORT_TASK:
TRACE(TRACE_MGMT_MINOR, "Abort Task (S %08x I %#x -> L %#x)",
TRACE(TRACE_MGMT, "Abort Task (S %08x I %#x -> L %#x)",
le16_to_cpu(iocb2x->seq_id), GET_TARGET_ID(ha, iocb2x),
le16_to_cpu(iocb2x->lun));
if (q2t_abort_task(ha, iocb2x) == 0)

View File

@@ -28,8 +28,12 @@ If you experience kernel crash, hang, etc., you should follow
REPORTING-BUGS file from your kernel source tree.
For most questions it is very desirable if you attach to your message
full kernel log from target since it's booted. It will allow us to see
your target and SCST configurations.
full kernel log from the target since it's booted. Note, *SINCE IT
BOOTED*. Please don't try to be smart and filter out what's you
think isn't needed. What's usually removed could allow us to see the
target and SCST configurations.
Don't forget to compress your log using "bzip2 -9".
Example of a really bad question:

View File

@@ -94,14 +94,15 @@
#define TRACE_OUT_OF_MEM 0x00000100
#define TRACE_MINOR 0x00000200 /* less important events */
#define TRACE_MGMT 0x00000400
#define TRACE_MGMT_MINOR 0x00000800
#define TRACE_MGMT_DEBUG 0x00001000
#define TRACE_SCSI 0x00002000
#define TRACE_SPECIAL 0x00004000 /* filtering debug, etc */
#define TRACE_FLOW_CONTROL 0x00008000 /* flow control in action */
#define TRACE_MGMT_DEBUG 0x00000800
#define TRACE_SCSI 0x00001000
#define TRACE_SPECIAL 0x00002000 /* filtering debug, etc */
#define TRACE_FLOW_CONTROL 0x00004000 /* flow control in action */
#define TRACE_ALL 0xffffffff
/* Flags 0xXXXX0000 are local for users */
#define TRACE_MINOR_AND_MGMT_DBG (TRACE_MINOR|TRACE_MGMT_DEBUG)
#ifndef KERN_CONT
#define KERN_CONT ""
#endif

View File

@@ -12,11 +12,11 @@
#ifdef CONFIG_SCST_DEBUG
#define SCST_DEFAULT_DEV_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_PID | \
TRACE_LINE | TRACE_FUNCTION | TRACE_MGMT | TRACE_MGMT_MINOR | \
TRACE_MINOR | TRACE_MGMT_DEBUG | TRACE_SPECIAL)
TRACE_LINE | TRACE_FUNCTION | TRACE_MGMT | TRACE_MINOR | \
TRACE_MGMT_DEBUG | TRACE_SPECIAL)
#else
#define SCST_DEFAULT_DEV_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \
TRACE_MINOR | TRACE_SPECIAL)
TRACE_SPECIAL)
#endif
static unsigned long dh_trace_flag = SCST_DEFAULT_DEV_LOG_FLAGS;

View File

@@ -304,7 +304,7 @@ static inline int calc_num_pg(unsigned long buf, int len)
static void __dev_user_not_reg(void)
{
TRACE(TRACE_MGMT_MINOR, "%s", "Device not registered");
TRACE_MGMT_DBG("%s", "Device not registered");
return;
}

View File

@@ -2181,7 +2181,7 @@ static void vdisk_exec_read_capacity16(struct scst_cmd *cmd)
* But if you're using such buggy Windows and experience this problem,
* change this '1' to '0'.
*/
#if 1
#if 0 /* there are too many such hosts */
if (length > READ_CAP16_LEN)
length = READ_CAP16_LEN;
#else

View File

@@ -2720,7 +2720,7 @@ int scst_prepare_request_sense(struct scst_cmd *orig_cmd)
rs_cmd->expected_transfer_len = SCST_SENSE_BUFFERSIZE;
rs_cmd->expected_values_set = 1;
TRACE(TRACE_MGMT_MINOR, "Adding REQUEST SENSE cmd %p to head of active "
TRACE_MGMT_DBG("Adding REQUEST SENSE cmd %p to head of active "
"cmd list", rs_cmd);
spin_lock_irq(&rs_cmd->cmd_lists->cmd_list_lock);
list_add(&rs_cmd->cmd_list_entry, &rs_cmd->cmd_lists->active_cmd_list);
@@ -2764,7 +2764,7 @@ static void scst_complete_request_sense(struct scst_cmd *req_cmd)
if (len > 0)
scst_put_buf(req_cmd, buf);
TRACE(TRACE_MGMT_MINOR, "Adding orig cmd %p to head of active "
TRACE_MGMT_DBG("Adding orig cmd %p to head of active "
"cmd list", orig_cmd);
spin_lock_irq(&orig_cmd->cmd_lists->cmd_list_lock);
list_add(&orig_cmd->cmd_list_entry, &orig_cmd->cmd_lists->active_cmd_list);
@@ -4593,8 +4593,8 @@ static void scst_check_internal_sense(struct scst_device *dev, int result,
if (host_byte(result) == DID_RESET) {
int sl;
TRACE(TRACE_MGMT_MINOR, "%s", "DID_RESET received, triggering "
"reset UA");
TRACE(TRACE_MGMT, "DID_RESET received for device %s, "
"triggering reset UA", dev->virt_name);
sl = scst_set_sense(sense, sense_len, dev->d_sense,
SCST_LOAD_SENSE(scst_sense_reset_UA));
scst_dev_check_set_UA(dev, NULL, sense, sl);
@@ -4778,7 +4778,7 @@ void scst_process_reset(struct scst_device *dev,
if (dev->dev_reserved) {
list_for_each_entry(tgt_dev, &dev->dev_tgt_dev_list,
dev_tgt_dev_list_entry) {
TRACE(TRACE_MGMT_MINOR, "Clearing RESERVE'ation for "
TRACE_MGMT_DBG("Clearing RESERVE'ation for "
"tgt_dev LUN %lld",
(long long unsigned int)tgt_dev->lun);
clear_bit(SCST_TGT_DEV_RESERVED,
@@ -4859,7 +4859,7 @@ int scst_set_pending_UA(struct scst_cmd *cmd)
TRACE_ENTRY();
TRACE(TRACE_MGMT_MINOR, "Setting pending UA cmd %p", cmd);
TRACE_MGMT_DBG("Setting pending UA cmd %p", cmd);
spin_lock_bh(&cmd->tgt_dev->tgt_dev_lock);
@@ -5082,7 +5082,7 @@ void __scst_dev_check_set_UA(struct scst_device *dev,
{
TRACE_ENTRY();
TRACE(TRACE_MGMT_MINOR, "Processing UA dev %p", dev);
TRACE_MGMT_DBG("Processing UA dev %p", dev);
/* Check for reset UA */
if (scst_analyze_sense(sense, sense_len, SCST_SENSE_ASC_VALID,

View File

@@ -59,10 +59,9 @@ extern unsigned long scst_trace_flag;
#ifdef CONFIG_SCST_DEBUG
/* TRACE_MGMT_MINOR disabled to not confuse regular users */
#define SCST_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MINOR | TRACE_PID | \
TRACE_LINE | TRACE_FUNCTION | TRACE_SPECIAL | TRACE_MGMT | \
/*TRACE_MGMT_MINOR |*/ TRACE_MGMT_DEBUG | TRACE_RTRY)
TRACE_MGMT_DEBUG | TRACE_RTRY)
#define TRACE_RETRY(args...) TRACE_DBG_FLAG(TRACE_RTRY, args)
#define TRACE_SN(args...) TRACE_DBG_FLAG(TRACE_SCSI_SERIALIZING, args)
@@ -74,7 +73,7 @@ extern unsigned long scst_trace_flag;
#else /* CONFIG_SCST_DEBUG */
# ifdef CONFIG_SCST_TRACING
#define SCST_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MINOR | TRACE_MGMT | \
#define SCST_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \
TRACE_SPECIAL)
# else
#define SCST_DEFAULT_LOG_FLAGS 0

View File

@@ -108,7 +108,6 @@ static struct scst_trace_log scst_proc_trace_tbl[] = {
{ TRACE_SPECIAL, "special" },
{ TRACE_SCSI, "scsi" },
{ TRACE_MGMT, "mgmt" },
{ TRACE_MGMT_MINOR, "mgmt_minor" },
{ TRACE_MGMT_DEBUG, "mgmt_dbg" },
{ TRACE_FLOW_CONTROL, "flow_control" },
{ 0, NULL }
@@ -156,7 +155,7 @@ static char *scst_proc_help_string =
" >/proc/scsi_tgt/[DEV_HANDLER_NAME/]trace_level\n"
" where TOKEN is one of [debug, function, line, pid, entryexit,\n"
" buff, mem, sg, out_of_mem, special, scsi,\n"
" mgmt, minor, mgmt_minor, mgmt_dbg]\n"
" mgmt, minor, mgmt_dbg]\n"
" Additionally for /proc/scsi_tgt/trace_level there are these TOKENs\n"
" [scsi_serializing, retry, recv_bot, send_bot, recv_top, send_top]\n"
#endif

View File

@@ -79,7 +79,6 @@ static struct scst_trace_log scst_trace_tbl[] = {
{ TRACE_SPECIAL, "special" },
{ TRACE_SCSI, "scsi" },
{ TRACE_MGMT, "mgmt" },
{ TRACE_MGMT_MINOR, "mgmt_minor" },
{ TRACE_MGMT_DEBUG, "mgmt_dbg" },
{ TRACE_FLOW_CONTROL, "flow_control" },
{ 0, NULL }
@@ -2205,7 +2204,7 @@ static ssize_t scst_trace_level_show(const struct scst_trace_log *local_tbl,
" buff, mem, sg, out_of_mem,\n"
#endif
" special, scsi, mgmt, minor,\n"
" mgmt_minor, mgmt_dbg, scsi_serializing,\n"
" mgmt_dbg, scsi_serializing,\n"
" retry, recv_bot, send_bot, recv_top,\n"
" send_top%s]", help != NULL ? help : "");

View File

@@ -360,10 +360,11 @@ static int scst_pre_parse(struct scst_cmd *cmd)
PRINT_BUFFER("Failed CDB", cmd->cdb, cmd->cdb_len);
goto out_xmit;
}
PRINT_ERROR("Unknown opcode 0x%02x for %s. "
TRACE(TRACE_MINOR, "Unknown opcode 0x%02x for %s. "
"Should you update scst_scsi_op_table?",
cmd->cdb[0], dev->handler->name);
PRINT_BUFFER("Failed CDB", cmd->cdb, cmd->cdb_len);
PRINT_BUFF_FLAG(TRACE_MINOR, "Failed CDB", cmd->cdb,
cmd->cdb_len);
#ifdef CONFIG_SCST_USE_EXPECTED_VALUES
if (scst_cmd_is_expected_set(cmd)) {
TRACE(TRACE_SCSI, "Using initiator supplied values: "
@@ -601,8 +602,7 @@ static int scst_parse_cmd(struct scst_cmd *cmd)
!scst_is_allowed_to_mismatch_cmd(cmd)) {
PRINT_ERROR("Expected data direction %d for "
"opcode 0x%02x (handler %s, target %s) "
"doesn't match "
"decoded value %d",
"doesn't match decoded value %d",
cmd->expected_data_direction,
cmd->cdb[0], dev->handler->name,
cmd->tgtt->name, cmd->data_direction);
@@ -614,7 +614,7 @@ static int scst_parse_cmd(struct scst_cmd *cmd)
}
}
if (unlikely(cmd->bufflen != cmd->expected_transfer_len)) {
TRACE(TRACE_MGMT_MINOR, "Warning: expected "
TRACE(TRACE_MINOR, "Warning: expected "
"transfer length %d for opcode 0x%02x "
"(handler %s, target %s) doesn't match "
"decoded value %d. Faulty initiator "
@@ -623,7 +623,7 @@ static int scst_parse_cmd(struct scst_cmd *cmd)
cmd->expected_transfer_len, cmd->cdb[0],
dev->handler->name, cmd->tgtt->name,
cmd->bufflen);
PRINT_BUFF_FLAG(TRACE_MGMT_MINOR, "Suspicious CDB",
PRINT_BUFF_FLAG(TRACE_MINOR, "Suspicious CDB",
cmd->cdb, cmd->cdb_len);
}
#endif
@@ -2413,9 +2413,9 @@ static int scst_check_sense(struct scst_cmd *cmd)
SCST_SENSE_ASC_VALID,
0, SCST_SENSE_ASC_UA_RESET, 0)) {
if (cmd->double_ua_possible) {
TRACE(TRACE_MGMT_MINOR, "Double UA "
TRACE_MGMT_DBG("Double UA "
"detected for device %p", dev);
TRACE(TRACE_MGMT_MINOR, "Retrying cmd"
TRACE_MGMT_DBG("Retrying cmd"
" %p (tag %llu)", cmd,
(long long unsigned)cmd->tag);
@@ -2478,8 +2478,8 @@ static int scst_check_auto_sense(struct scst_cmd *cmd)
if (unlikely(cmd->status == SAM_STAT_CHECK_CONDITION) &&
(!SCST_SENSE_VALID(cmd->sense) ||
SCST_NO_SENSE(cmd->sense))) {
TRACE(TRACE_SCSI|TRACE_MINOR, "CHECK_CONDITION, but no sense: "
"cmd->status=%x, cmd->msg_status=%x, "
TRACE(TRACE_SCSI|TRACE_MINOR_AND_MGMT_DBG, "CHECK_CONDITION, "
"but no sense: cmd->status=%x, cmd->msg_status=%x, "
"cmd->host_status=%x, cmd->driver_status=%x (cmd %p)",
cmd->status, cmd->msg_status, cmd->host_status,
cmd->driver_status, cmd);
@@ -2491,9 +2491,9 @@ static int scst_check_auto_sense(struct scst_cmd *cmd)
(cmd->host_status == DID_ABORT)) {
scst_set_busy(cmd);
} else {
TRACE(TRACE_SCSI|TRACE_MINOR, "Host status %x "
"received, returning HARDWARE ERROR instead "
"(cmd %p)", cmd->host_status, cmd);
TRACE(TRACE_SCSI|TRACE_MINOR_AND_MGMT_DBG, "Host "
"status %x received, returning HARDWARE ERROR "
"instead (cmd %p)", cmd->host_status, cmd);
scst_set_cmd_error(cmd,
SCST_LOAD_SENSE(scst_sense_hardw_error));
}
@@ -4043,9 +4043,7 @@ void scst_abort_cmd(struct scst_cmd *cmd, struct scst_mgmt_cmd *mcmd,
TRACE_ENTRY();
TRACE((mcmd && mcmd->fn == SCST_ABORT_TASK)
? TRACE_MGMT_MINOR : TRACE_MGMT,
"Aborting cmd %p (tag %llu, op %x)",
TRACE(TRACE_MGMT, "Aborting cmd %p (tag %llu, op %x)",
cmd, (long long unsigned int)cmd->tag, cmd->cdb[0]);
/* To protect from concurrent aborts */
@@ -4336,6 +4334,7 @@ static int scst_clear_task_set(struct scst_mgmt_cmd *mcmd)
TRACE(TRACE_MGMT, "Clearing task set (lun=%lld, mcmd=%p)",
(long long unsigned int)mcmd->lun, mcmd);
#if 0 /* we are SAM-3 */
/*
* When a logical unit is aborting one or more tasks from a SCSI
* initiator port with the TASK ABORTED status it should complete all
@@ -4346,6 +4345,7 @@ static int scst_clear_task_set(struct scst_mgmt_cmd *mcmd)
spin_lock_bh(&dev->dev_lock);
__scst_block_dev(dev);
spin_unlock_bh(&dev->dev_lock);
#endif
__scst_abort_task_set(mcmd, mcmd->mcmd_tgt_dev);
@@ -4424,7 +4424,7 @@ static int scst_mgmt_cmd_init(struct scst_mgmt_cmd *mcmd)
spin_lock_irq(&sess->sess_list_lock);
cmd = __scst_find_cmd_by_tag(sess, mcmd->tag);
if (cmd == NULL) {
TRACE(TRACE_MGMT_MINOR, "ABORT TASK failed: command "
TRACE_MGMT_DBG("ABORT TASK: command "
"for tag %llu not found",
(long long unsigned int)mcmd->tag);
mcmd->status = SCST_MGMT_STATUS_TASK_NOT_EXIST;
@@ -4698,10 +4698,10 @@ static int scst_abort_all_nexus_loss_sess(struct scst_mgmt_cmd *mcmd,
TRACE_ENTRY();
if (nexus_loss) {
TRACE(TRACE_MGMT_MINOR, "Nexus loss for sess %p (mcmd %p)",
TRACE_MGMT_DBG("Nexus loss for sess %p (mcmd %p)",
sess, mcmd);
} else {
TRACE(TRACE_MGMT_MINOR, "Aborting all from sess %p (mcmd %p)",
TRACE_MGMT_DBG("Aborting all from sess %p (mcmd %p)",
sess, mcmd);
}
@@ -4772,10 +4772,10 @@ static int scst_abort_all_nexus_loss_tgt(struct scst_mgmt_cmd *mcmd,
TRACE_ENTRY();
if (nexus_loss) {
TRACE(TRACE_MGMT_MINOR, "I_T Nexus loss (tgt %p, mcmd %p)",
TRACE_MGMT_DBG("I_T Nexus loss (tgt %p, mcmd %p)",
tgt, mcmd);
} else {
TRACE(TRACE_MGMT_MINOR, "Aborting all from tgt %p (mcmd %p)",
TRACE_MGMT_DBG("Aborting all from tgt %p (mcmd %p)",
tgt, mcmd);
}
@@ -4946,8 +4946,8 @@ static void scst_mgmt_cmd_send_done(struct scst_mgmt_cmd *mcmd)
if (scst_is_strict_mgmt_fn(mcmd->fn) && (mcmd->completed_cmd_count > 0))
mcmd->status = SCST_MGMT_STATUS_TASK_NOT_EXIST;
TRACE(TRACE_MGMT_MINOR, "TM command fn %d finished, status %x",
mcmd->fn, mcmd->status);
TRACE(TRACE_MINOR_AND_MGMT_DBG, "TM command fn %d finished, "
"status %x", mcmd->fn, mcmd->status);
if (!mcmd->affected_cmds_done_called) {
/* It might happen in case of errors */
@@ -5262,8 +5262,7 @@ int scst_rx_mgmt_fn(struct scst_session *sess,
mcmd->cmd_sn_set = params->cmd_sn_set;
mcmd->cmd_sn = params->cmd_sn;
TRACE((params->fn == SCST_ABORT_TASK) ? TRACE_MGMT_MINOR : TRACE_MGMT,
"TM fn %d", params->fn);
TRACE(TRACE_MGMT, "TM fn %d", params->fn);
TRACE_MGMT_DBG("sess=%p, tag_set %d, tag %lld, lun_set %d, "
"lun=%lld, cmd_sn_set %d, cmd_sn %d, priv %p", sess,

View File

@@ -57,12 +57,12 @@
#ifdef CONFIG_SCST_DEBUG
#define SCST_LOCAL_DEFAULT_LOG_FLAGS (TRACE_FUNCTION | TRACE_PID | \
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_MINOR | \
TRACE_MGMT_DEBUG | TRACE_MINOR | TRACE_SPECIAL)
TRACE_OUT_OF_MEM | TRACE_MGMT | TRACE_MGMT_DEBUG | \
TRACE_MINOR | TRACE_SPECIAL)
#else
# ifdef CONFIG_SCST_TRACING
#define SCST_LOCAL_DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \
TRACE_MINOR | TRACE_SPECIAL)
TRACE_SPECIAL)
# endif
#endif

View File

@@ -645,9 +645,8 @@ static int do_tm(struct vdisk_cmd *vcmd)
TRACE_ENTRY();
TRACE((cmd->tm_cmd.fn == SCST_ABORT_TASK) ? TRACE_MGMT_MINOR : TRACE_MGMT,
"TM fn %d (sess_h %"PRIx64", cmd_h_to_abort %d)", cmd->tm_cmd.fn,
cmd->tm_cmd.sess_h, cmd->tm_cmd.cmd_h_to_abort);
TRACE(TRACE_MGMT, "TM fn %d (sess_h %"PRIx64", cmd_h_to_abort %d)",
cmd->tm_cmd.fn, cmd->tm_cmd.sess_h, cmd->tm_cmd.cmd_h_to_abort);
memset(reply, 0, sizeof(*reply));
reply->cmd_h = cmd->cmd_h;

View File

@@ -48,12 +48,11 @@ extern pid_t gettid(void);
#define TRACE_OUT_OF_MEM 0x00000100
#define TRACE_MINOR 0x00000200 /* less important events */
#define TRACE_MGMT 0x00000400
#define TRACE_MGMT_MINOR 0x00000800
#define TRACE_MGMT_DEBUG 0x00001000
#define TRACE_SCSI 0x00002000
#define TRACE_SPECIAL 0x00004000 /* filtering debug, etc */
#define TRACE_TIME 0x00008000
#define TRACE_ORDER 0x00010000
#define TRACE_MGMT_DEBUG 0x00000800
#define TRACE_SCSI 0x00001000
#define TRACE_SPECIAL 0x00002000 /* filtering debug, etc */
#define TRACE_TIME 0x00004000
#define TRACE_ORDER 0x00008000
#define TRACE_ALL 0xffffffff
#define PRINT(format, args...) fprintf(stdout, format "\n", ## args);

View File

@@ -47,15 +47,15 @@ char *app_name;
~TRACE_SCSI & ~TRACE_SCSI_SERIALIZING & ~TRACE_DEBUG)
*/
#define DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MINOR | TRACE_PID | \
TRACE_FUNCTION | TRACE_SPECIAL | TRACE_MGMT | TRACE_MGMT_MINOR | \
TRACE_MGMT_DEBUG | TRACE_TIME)
TRACE_FUNCTION | TRACE_SPECIAL | TRACE_MGMT | TRACE_MGMT_DEBUG | \
TRACE_TIME)
#define TRACE_SN(args...) TRACE(TRACE_SCSI_SERIALIZING, args)
#else /* DEBUG */
# ifdef TRACING
#define DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MINOR | TRACE_MGMT | \
#define DEFAULT_LOG_FLAGS (TRACE_OUT_OF_MEM | TRACE_MGMT | \
TRACE_TIME | TRACE_SPECIAL)
# else
#define DEFAULT_LOG_FLAGS 0