• Suganath Prabu S's avatar
    scsi: mpt3sas: Introduce perf_mode module parameter · ca7e1e9d
    Suganath Prabu S authored
    1. Introduce module parameter perf_mode for only Aero/Sea generation HBAs.
    
    2. Update IOC page1 fields according to performance mode.
    
    Below are the performance modes that can be enabled with module parameter
    perf_mode:
    
     0: Balanced - Few high iops reply queues will be enabled.  Interrupt
        coalescing will be enabled only for these high iops reply descriptor
        queues.
    
     1: Iops - Interrupt coalescing will be enabled on all reply queues.
        Coalescing timeout is set to 0x20.This is default value for Aero.
    
     2: Latency - Interrupt coalescing will be enabled on all reply queues.
        Coalescing timeout is set to 0xA.  This is a legacy behavior similar to
        Ventura & Invader HBA series.
    
    Default perf mode set by driver will be balanced mode if the following
    conditions are met:
    
     - CPU vendor = Intel;
     - Aero controller working in 16GT/s pcie speed
    
    Performance mode will be set to latency mode for all other cases.
    
    4k Random Read IO performance numbers on 24 SAS SSD drives for above three
    permormance modes. Performance data is from Intel Skylake and HGST SS300
    (drive model SDLL1DLR400GCCA1).
    
    IOPs:
     -----------------------------------------------------------------------
      |perf_mode    | qd = 1 | qd = 64 |   note                             |
      |-------------|--------|---------|-------------------------------------
      |balanced     |  259K  |  3061k  | Provides max performance numbers   |
      |             |        |         | both on lower QD workload &        |
      |             |        |         | also on higher QD workload         |
      |-------------|--------|---------|-------------------------------------
      |iops         |  220K  |  3100k  | Provides max performance numbers   |
      |             |        |         | only on higher QD workload.        |
      |-------------|--------|---------|-------------------------------------
      |latency      |  246k  |  2226k  | Provides good performance numbers  |
      |             |        |         | only on lower QD worklaod.         |
      -----------------------------------------------------------------------
    
    Avarage Latency:
      -----------------------------------------------------
      |perf_mode    |  qd = 1      |    qd = 64           |
      |-------------|--------------|----------------------|
      |balanced     |  92.05 usec  |    501.12 usec       |
      |-------------|--------------|----------------------|
      |iops         |  108.40 usec |    498.10 usec       |
      |-------------|--------------|----------------------|
      |latency      |  97.10 usec  |    689.26 usec       |
      -----------------------------------------------------
    Signed-off-by: default avatarSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    ca7e1e9d
mpt3sas_base.c 209 KB