• John Garry's avatar
    hisi_sas: add hisi_sas_slave_configure() · 31eec8a6
    John Garry authored
    In high-datarate aging tests, it is found that the
    SCSI framework can periodically issue lu resets as
    some commands timeout.
    Response TASK SET FULL and SAS_QUEUE_FULL may be
    returned many times for the same command, causing the
    timeouts.
    The SAS_QUEUE_FULL errors come from
    TRANS_TX_CREDIT_TIMEOUT_ERR, TRANS_TX_CLOSE_NORMAL_ERR,
    and TRANS_TX_ERR_FRAME_TXED errors. They do not mean
    that the queue is full in the host, but rather it is
    equivalent to meaning the queue is full for the sdev.
    To overcome this, the queue depth for the sdev is
    reduced to 64 (from 256, set in sas_slave_configure()).
    Normally error code SAS_QUEUE_FULL will result in the
    sdev queue depth falling, but it falls too slowly during
    high-datarate tests and commands timeout before it
    has fallen to an adequete level from original value.
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    31eec8a6
hisi_sas_main.c 37.5 KB