/* * debug level can be programmed on the fly via SysFS (hex values) * * Example: (programming for MPT_DEBUG_EVENTS on host 5) * * echo 8 > /sys/class/scsi_host/host5/debug_level * * -------------------------------------------------------- * mpt_debug_level - command line parameter * this allow enabling debug at driver load time (for all iocs) * * Example (programming for MPT_DEBUG_EVENTS) * * insmod mptbase.ko mpt_debug_level=8 * * -------------------------------------------------------- * CONFIG_FUSION_LOGGING - enables compiling debug into driver * this can be enabled in the driver Makefile * * * -------------------------------------------------------- * Please note most debug prints are set to logging priority = debug * This is the lowest level, and most verbose. Please refer to manual * pages for syslogd or syslogd-ng on how to configure this.
*/
/* * Verbose logging
*/ #ifdefined(MPT_DEBUG_VERBOSE) && defined(CONFIG_FUSION_LOGGING) staticinlinevoid
DBG_DUMP_FW_DOWNLOAD(MPT_ADAPTER *ioc, u32 *mfp, int numfrags)
{ int i;
if (!(ioc->debug_level & MPT_DEBUG)) return;
printk(KERN_DEBUG "F/W download request:\n"); for (i=0; i < 7+numfrags*2; i++)
printk(" %08x", le32_to_cpu(mfp[i]));
printk("\n");
}
staticinlinevoid
DBG_DUMP_PUT_MSG_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
{ int ii, n;
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME)) return;
printk(KERN_DEBUG "%s: About to Put msg frame @ %p:\n",
ioc->name, mfp);
n = ioc->req_sz/4 - 1; while (mfp[n] == 0)
n--; for (ii=0; ii<=n; ii++) { if (ii && ((ii%8)==0))
printk("\n");
printk(" %08x", le32_to_cpu(mfp[ii]));
}
printk("\n");
}
staticinlinevoid
DBG_DUMP_FW_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
{ int i, n;
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME)) return;
n = 10;
printk(KERN_INFO " "); for (i = 0; i < n; i++)
printk(" %08x", le32_to_cpu(mfp[i]));
printk("\n");
}
staticinlinevoid
DBG_DUMP_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
{ int i, n;
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME)) return;
n = 24; for (i=0; i<n; i++) { if (i && ((i%8)==0))
printk("\n");
printk("%08x ", le32_to_cpu(mfp[i]));
}
printk("\n");
}
staticinlinevoid
DBG_DUMP_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
{ int i, n;
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME)) return;
n = (le32_to_cpu(mfp[0]) & 0x00FF0000) >> 16;
printk(KERN_INFO " "); for (i=0; i<n; i++)
printk(" %08x", le32_to_cpu(mfp[i]));
printk("\n");
}
staticinlinevoid
DBG_DUMP_REQUEST_FRAME_HDR(MPT_ADAPTER *ioc, u32 *mfp)
{ int i, n;
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME)) return;
n = 3;
printk(KERN_INFO " "); for (i=0; i<n; i++)
printk(" %08x", le32_to_cpu(mfp[i]));
printk("\n");
}
staticinlinevoid
DBG_DUMP_TM_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
{ int i, n;
if (!(ioc->debug_level & MPT_DEBUG_TM)) return;
n = 13;
printk(KERN_DEBUG "TM_REQUEST:\n"); for (i=0; i<n; i++) { if (i && ((i%8)==0))
printk("\n");
printk("%08x ", le32_to_cpu(mfp[i]));
}
printk("\n");
}
staticinlinevoid
DBG_DUMP_TM_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
{ int i, n;
if (!(ioc->debug_level & MPT_DEBUG_TM)) return;
n = (le32_to_cpu(mfp[0]) & 0x00FF0000) >> 16;
printk(KERN_DEBUG "TM_REPLY MessageLength=%d:\n", n); for (i=0; i<n; i++) { if (i && ((i%8)==0))
printk("\n");
printk(" %08x", le32_to_cpu(mfp[i]));
}
printk("\n");
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.