• Peter Oberparleiter's avatar
    s390/sclp: add tracing of SCLP interactions · 70aa5d39
    Peter Oberparleiter authored
    Add tracing of interactions between the SCLP base driver, firmware and
    other drivers to support problem determination in case of SCLP-related
    issues.
    
    For that purpose this patch introduces two new s390dbf debug areas:
    
      - sclp: An abbreviated log of all common interactions
      - sclp_err: A full log of failed or abnormal interactions
    
    Tracing of full SCCB contents can be enabled for the sclp area by
    setting its debug level to maximum (6).
    
    Overview of added trace events:
    
      * Firmware interaction:
        - SRV1: Service call about to be issued
        - SRV2: Service call was issued
        - INT:  Interrupt received
    
      * Driver interaction:
        - RQAD: Request was added
        - RQOK: Request success
        - RQAB: Request aborted
        - RQTM: Request timed out
        - REG:  Event listener registered
        - UREG: Event listener unregistered
        - EVNT: Event callback
        - STCG: State-change callback
    
      * Abnormal events:
        - TMO:  A timeout occurred
        - UNEX: Unexpected SCCB completion
    
      * Other (not traced at default level):
        - SYN1: Synchronous wait start
        - SYN2: Synchronous wait end
    
    Since the SCLP interface is used by console drivers this patch also
    moves s390dbf printks outside the critical section protected by debug
    area locks to prevent a potential deadlock that would otherwise be
    introduced between console_owner --> sclp_lock --> sclp_debug.lock.
    Signed-off-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    70aa5d39
sclp.c 35.3 KB