• Vasu Dev's avatar
    [SCSI] add queue_depth ramp up code · 4a84067d
    Vasu Dev authored
    Current FC HBA queue_depth ramp up code depends on last queue
    full time. The sdev already  has last_queue_full_time field to
    track last queue full time but stored value is truncated by
    last four bits.
    
    So this patch updates last_queue_full_time without truncating
    last 4 bits to store full value and then updates its only
    current usages in scsi_track_queue_full to ignore last four bits
    to keep current usages same while also use this field
    in added ramp up code.
    
    Adds scsi_handle_queue_ramp_up to ramp up queue_depth on
    successful completion of IO. The scsi_handle_queue_ramp_up will
    do ramp up on all luns of a target, just same as ramp down done
    on all luns on a target.
    
    The ramp up is skipped in case the change_queue_depth is not
    supported by LLD or already reached to added max_queue_depth.
    
    Updates added max_queue_depth on every new update to default
    queue_depth value.
    
    The ramp up is also skipped if lapsed time since either last
    queue ramp up or down is less than LLD specified
    queue_ramp_up_period.
    
    Adds queue_ramp_up_period to sysfs but only if change_queue_depth
    is supported since ramp up and queue_ramp_up_period is needed only
    in case change_queue_depth is supported first.
    
    Initializes queue_ramp_up_period to 120HZ jiffies as initial
    default value, it is same as used in existing lpfc and qla2xxx.
    
    -v2
     Combined all ramp code into this single patch.
    
    -v3
     Moves max_queue_depth initialization after slave_configure is
    called from after slave_alloc calling done. Also adjusted
    max_queue_depth check to skip ramp up if current queue_depth
    is >= max_queue_depth.
    
    -v4
     Changes sdev->queue_ramp_up_period unit to ms when using sysfs i/f
    to store or show its value.
    Signed-off-by: default avatarVasu Dev <vasu.dev@intel.com>
    Tested-by: default avatarChristof Schmitt <christof.schmitt@de.ibm.com>
    Tested-by: default avatarGiridhar Malavali <giridhar.malavali@qlogic.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    4a84067d
scsi.c 37.5 KB