• Vineeth Vijayan's avatar
    s390/cio: evaluate devices with non-operational paths · ca34cda7
    Vineeth Vijayan authored
    css_schedule_reprobe() function calls the evaluation for CSS_EVAL_UNREG
    which is specific to the idset of unregistered subchannels. This
    evaluation was introduced because, previously, if the underlying device
    become not-accessible, the subchannel was unregistered. But, in the recent
    changes in cio,with the commit '2297791c s390/cio: dont unregister
    subchannel from child-drivers', we no  longer unregister the subchannels
    just because of a non-operational device. This allows to have subchannels
    without any operational device connected on it. So, a css_schedule_reprobe
    function on unregistered subchannel does not have any effect.
    
    Change this functionality to evaluate the subchannels which does not
    have a working path to the device. This could be due the erroneous
    device or due to the erraneous path. Evaluate based on the values of OPM
    and PAM&POM.
    Here we introduced a new idset function,to keep I/O subchannels in the
    idset when the last seen status indicates that the device has no working
    path. A device has no working path if all available paths have been tried
    without success.A failed I/O attempt on a path is indicated as a 0 bit
    value in the POM mask. By looking at the POM mask bit values of available
    paths (1 in PAM) that Linux is supposed to use (1 in vary mask OPM), we
    can identify a non-working device as a device where the bit-wise and of
    the PAM, POM and OPM mask return 0.
    
    css_schedule_reprobe() is being used by dasd-driver and chsc-cio
    component. dasd driver, when it detects a change in the pathgroup, invokes
    the re-evaluation of the subchannel. And chsc-cio component upon a CRW
    event, (resource accessibility event). In both the cases, it makes much
    better sense to re-evalute the subchannel with no-valid path.
    Signed-off-by: default avatarVineeth Vijayan <vneethv@linux.ibm.com>
    Reported-by: default avatarEric Farman <farman@linux.ibm.com>
    Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
    Tested-by: default avatarEric Farman <farman@linux.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    ca34cda7
css.c 33.3 KB