• sumit.saxena@avagotech.com's avatar
    megaraid_sas: JBOD sequence number support · 3761cb4c
    sumit.saxena@avagotech.com authored
    Implemented JBOD map which will provide quick access for JBOD path and
    also provide sequence number.  This will help hardware to fail command
    to the FW in case of any sequence mismatch.
    
    Fast Path I/O for JBOD will refer JBOD map (which has sequence number
    per JBOD device) instead of RAID map.  Previously, the driver used RAID
    map to get device handle for fast path I/O and this not have sequence
    number information. Now, driver will use JBOD map instead.  As part of
    error handling, if JBOD map is failed/not supported by firmware, driver
    will continue using legacy behavior.
    
    Now there will be three IO paths for JBOD (syspd):
    
     - JBOD map with sequence number (Fast Path)
     - RAID map without sequence number (Fast Path)
     - FW path via h/w exception queue deliberately setup devhandle
       0xFFFF (FW path).
    
    Relevant data structures:
    
     - Driver send new DCMD MR_DCMD_SYSTEM_PD_MAP_GET_INFO for this purpose.
     - struct MR_PD_CFG_SEQ- This structure represent map of single physical
       device.
     - struct MR_PD_CFG_SEQ_NUM_SYNC- This structure represent whole JBOD
       map in general(size, count of sysPDs configured, struct MR_PD_CFG_SEQ
       of syspD with 0 index).
     - JBOD sequence map size is: sizeof(struct MR_PD_CFG_SEQ_NUM_SYNC)
       + (sizeof(struct MR_PD_CFG_SEQ) * (MAX_PHYSICAL_DEVICES - 1)) which
       is allocated while setting up JBOD map at driver load time.
    Signed-off-by: default avatarSumit Saxena <sumit.saxena@avagotech.com>
    Signed-off-by: default avatarKashyap Desai <kashyap.desai@avagotech.com>
    Reviewed-by: default avatarMartin Petersen <martin.petersen@oracle.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    3761cb4c
megaraid_sas_fusion.c 88.9 KB