• Don Brace's avatar
    hpsa: honor queue depth of physical devices · 03383736
    Don Brace authored
    When using the ioaccel submission methods, requests destined for RAID volumes
    are sometimes diverted to physical devices.  The OS has no or limited
    knowledge of these physical devices, so it is up to the driver to avoid
    pushing the device too hard.  It is better to honor the physical device queue
    limit rather than making the device spew zillions of TASK SET FULL responses.
    
    This is so that hpsa based devices support /sys/block/sdNN/device/queue_type
    of simple, which lets the SCSI midlayer automatically adjust the queue_depth
    based on TASK SET FULL and GOOD status.
    
    Adjust the queue depth for a new device after it is created based on the
    maximum queue depths of the physical devices that constitute the
    device. This drops the maximum queue depth from .can_queue of 1024 to
    something like 174 for single-drive RAID-0, 348 for two-drive RAID-1, etc.
    It also adjusts for the ratio of data to parity drives.
    Reviewed-by: default avatarScott Teel <scott.teel@pmcs.com>
    Signed-off-by: default avatarWebb Scales <webbnh@hp.com>
    Signed-off-by: default avatarDon Brace <don.brace@pmcs.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    03383736
hpsa.c 216 KB