• Chandrakanth Patil's avatar
    scsi: megaraid_sas: Introduce various Aero performance modes · 299ee426
    Chandrakanth Patil authored
    For Aero adapters, driver provides three different performance modes
    controlled through module parameter named 'perf_mode'. Below are those
    performance modes:
    
     0: Balanced - Additional high IOPS reply queues will be enabled along with
        low latency queues. Interrupt coalescing will be enabled only for these
        high IOPS reply queues.
    
     1: IOPS - No additional high IOPS queues are enabled. Interrupt coalescing
        will be enabled on all reply queues.
    
     2: Latency - No additional high IOPS queues are enabled. Interrupt
        coalescing will be disabled on all reply queues. This is a legacy
        behavior similar to Ventura & Invader Series.
    
    Default performance mode settings:
    
     - Performance mode set to 'Balanced', if Aero controller is working in
       16GT/s PCIe speed.
    
     - Performance mode will be set to 'Latency' mode for all other cases.
    
    Through module parameter 'perf_mode', user can override default performance
    mode to desired one.
    
    Captured some performance numbers with these performance modes.  4k Random
    Read IO performance numbers on 24 SAS SSD drives for above three
    performance 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.         |
      -----------------------------------------------------------------------
    
    Average 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 avatarSumit Saxena <sumit.saxena@broadcom.com>
    Signed-off-by: default avatarChandrakanth Patil <chandrakanth.patil@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    299ee426
megaraid_sas.h 64.1 KB