• nagalakshmi.nandigama@lsi.com's avatar
    [SCSI] mpt2sas: Added NUNA IO support in driver which uses multi-reply queue support of the HBA · 911ae943
    nagalakshmi.nandigama@lsi.com authored
    Support added for controllers capable of multi reply queues.
    
    The following are the modifications to the driver to support NUMA.
    
    1) Create the new structure adapter_reply_queue to contain the reply queue
       info for every msix vector.  This object will contain a
       reply_post_host_index, reply_post_free for each instance, msix_index, among
       other parameters.  We will track all the reply queues on a link list called
       ioc->reply_queue_list. Each reply queue is aligned with each IRQ, and is
       passed to the interrupt via the bus_id parameter.
    
    (2) The driver will figure out the msix_vector_count from the PCIe MSIX
        capabilities register instead of the IOC Facts->MaxMSIxVectors. This is
        because the firmware is not filling in this field until the driver has
        already registered MSIX support.
    
    (3) If the ioc_facts reports that the controller is MSIX compatible in the
        capabilities, then the driver will request for multiple irqs.  This count
        is calculated based on the minimum between the online cpus available and
        the ioc->msix_vector_count.  This count is reported to firmware in the
        ioc_init request.
    
    (4) New routines were added _base_free_irq and _base_request_irq, so
        registering and freeing msix vectors were done thru simple function API.
    
    (5) The new routine _base_assign_reply_queues was added to align the msix
        indexes across cpus. This will initialize the array called
        ioc->cpu_msix_table.  This array is looked up on every MPI request so the
        MSIxIndex is set appropriately.
    
    (6) A new shost sysfs attribute was added to report the reply_queue_count.
    
    (7) User needs to set the affinity cpu mask, so the interrupts occur on the
        same cpu that sent the original request.
    Signed-off-by: default avatarNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    911ae943
mpt2sas_scsih.c 226 KB