linux/drivers/scsi/megaraid
Chandrakanth Patil 299ee42615 scsi: megaraid_sas: Introduce various Aero performance modes
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: Sumit Saxena <sumit.saxena@broadcom.com>
Signed-off-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2019-06-27 00:08:50 -04:00
..
Kconfig.megaraid scsi: megaraid_sas: IRQ poll to avoid CPU hard lockups 2019-06-18 19:46:19 -04:00
Makefile scsi: megaraid_sas: Export RAID map through debugfs 2019-06-18 19:46:20 -04:00
mbox_defs.h
mega_common.h
megaraid_ioctl.h scsi: megaraid: Convert timers to use timer_setup() 2017-11-01 11:27:08 -07:00
megaraid_mbox.c cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
megaraid_mbox.h scsi: megaraid: fix spelling mistake "maibox" -> "mailbox" 2018-09-25 20:59:27 -04:00
megaraid_mm.c scsi: megaraid_sas: NULL check before some freeing functions is not needed 2018-12-07 21:46:22 -05:00
megaraid_mm.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
megaraid_sas_base.c scsi: megaraid_sas: Introduce various Aero performance modes 2019-06-27 00:08:50 -04:00
megaraid_sas_debugfs.c scsi: megaraid_sas: Remove unused including <linux/version.h> 2019-06-18 19:46:25 -04:00
megaraid_sas_fp.c scsi: megaraid_sas: Use high IOPS queues based on IO workload 2019-06-27 00:07:36 -04:00
megaraid_sas_fusion.c scsi: megaraid_sas: Introduce various Aero performance modes 2019-06-27 00:08:50 -04:00
megaraid_sas_fusion.h scsi: megaraid_sas: Use high IOPS queues based on IO workload 2019-06-27 00:07:36 -04:00
megaraid_sas.h scsi: megaraid_sas: Introduce various Aero performance modes 2019-06-27 00:08:50 -04:00