lkml.org 
[lkml]   [2011]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[076/272] [SCSI] mpt2sas: Correct resizing calculation for max_queue_depth
    2.6.37-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Kashyap, Desai <kashyap.desai@lsi.com>

    commit 11e1b961ab067ee3acaf723531da4d3f23e1d6f7 upstream.

    The ioc->hba_queue_depth is not properly resized when the controller
    firmware reports that it supports more outstanding IO than what can be fit
    inside the reply descriptor pool depth. This is reproduced by setting the
    controller global credits larger than 30,000. The bug results in an
    incorrect sizing of the queues. The fix is to resize the queue_size by
    dividing queue_diff by two.

    Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
    Signed-off-by: James Bottomley <James.Bottomley@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/scsi/mpt2sas/mpt2sas_base.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/scsi/mpt2sas/mpt2sas_base.c
    +++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
    @@ -2057,9 +2057,9 @@ _base_allocate_memory_pools(struct MPT2S
    /* adjust hba_queue_depth, reply_free_queue_depth,
    * and queue_size
    */
    - ioc->hba_queue_depth -= queue_diff;
    - ioc->reply_free_queue_depth -= queue_diff;
    - queue_size -= queue_diff;
    + ioc->hba_queue_depth -= (queue_diff / 2);
    + ioc->reply_free_queue_depth -= (queue_diff / 2);
    + queue_size = facts->MaxReplyDescriptorPostQueueDepth;
    }
    ioc->reply_post_queue_depth = queue_size;




    \
     
     \ /
      Last update: 2011-02-16 02:43    [W:0.020 / U:61.564 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site