• Vineeth Vijayan's avatar
    s390/cio: add CRW inject functionality · a4f17cc7
    Vineeth Vijayan authored
    This patch introduces the mechanism to inject artificial events to the
    CIO layer.
    
    One of the main-event type which triggers the CommonIO operations are
    Channel Report events. When a malfunction or other condition affecting
    channel-subsystem operation is recognized, a Channel Report Word
    (consisting of one or more CRWs) describing the condition is made
    pending for retrieval and analysis by the program. The CRW contains
    information concerning the identity and state of a facility following
    the detection of the malfunction or other condition.
    
    The patch introduces two debugfs interfaces which can be used to inject
    'artificial' events from the userspace. It is intended to provide an easy
    means to increase the test coverage for CIO code. And this functionality
    can be enabled via a new configuration option CONFIG_CIO_INJECT.
    
    The newly introduces debugfs interfaces can be used as mentioned below
    to generate different fake-events. To use the crw_inject, first we should
    enable it by using enable_inject interface.
    i.e
    
    echo 1 > /sys/kernel/debug/s390/cio/enable_inject
    
    After the first step, user can simulate CRW as follows:
    
    echo <solicited> <overflow> <chaining> <rsc> <ancillary> <erc> <rsid> \
                                   > /sys/kernel/debug/s390/cio/crw_inject
    
    Example:
    A permanent error ERC on CHPID 0x60 would look like this:
    
      echo 0 0 0 4 0 6 0x60 > /sys/kernel/debug/s390/cio/crw_inject
    
    and an initialized ERC on the same CHPID:
    
      echo 0 0 0 4 0 2 0x60 > /sys/kernel/debug/s390/cio/crw_inject
    Signed-off-by: default avatarVineeth Vijayan <vneethv@linux.ibm.com>
    Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    a4f17cc7
cio_inject.h 336 Bytes