• James Smart's avatar
    scsi: lpfc: raise sg count for nvme to use available sg resources · 5b9e70b2
    James Smart authored
    The driver allocates a sg list per io struture based on a fixed maximum
    size. When it registers with the protocol transports and indicates the max sg
    list size it supports, the driver manipulates the fixed value to report a
    lesser amount so that it has reserved space for sg elements that are used for
    DIF.
    
    The driver initialization path sets the cfg_sg_seg_cnt field to the
    manipulated value for scsi. NVME initialization ran afterward and capped it's
    maximum by the manipulated value for SCSI. This erroneously made NVME report
    the SCSI-reduce-for-DIF value that reduced the max io size for nvme and wasted
    sg elements.
    
    Rework the driver so that cfg_sg_seg_cnt becomes the overall maximum size and
    allow the max size to be tunable.  A separate (new) scsi sg count is then
    setup with the scsi-modified reduced value. NVME then initializes based off
    the overall maximum.
    Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    5b9e70b2
lpfc_init.c 372 KB