• Dick Kennedy's avatar
    scsi: lpfc: Add an internal trace log buffer · 372c187b
    Dick Kennedy authored
    The current logging methods typically end up requesting a reproduction with
    a different logging level set to figure out what happened. This was mainly
    by design to not clutter the kernel log messages with things that were
    typically not interesting and the messages themselves could cause other
    issues.
    
    When looking to make a better system, it was seen that in many cases when
    more data was wanted was when another message, usually at KERN_ERR level,
    was logged.  And in most cases, what the additional logging that was then
    enabled was typically. Most of these areas fell into the discovery machine.
    
    Based on this summary, the following design has been put in place: The
    driver will maintain an internal log (256 elements of 256 bytes).  The
    "additional logging" messages that are usually enabled in a reproduction
    will be changed to now log all the time to the internal log.  A new logging
    level is defined - LOG_TRACE_EVENT.  When this level is set (it is not by
    default) and a message marked as KERN_ERR is logged, all the messages in
    the internal log will be dumped to the kernel log before the KERN_ERR
    message is logged.
    
    There is a timestamp on each message added to the internal log. However,
    this timestamp is not converted to wall time when logged. The value of the
    timestamp is solely to give a crude time reference for the messages.
    
    Link: https://lore.kernel.org/r/20200630215001.70793-14-jsmart2021@gmail.comSigned-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    372c187b
lpfc_vport.c 26.3 KB