1. 27 Jun, 2019 16 commits
  2. 20 Jun, 2019 21 commits
  3. 18 Jun, 2019 3 commits
    • Suganath Prabu S's avatar
      scsi: mpt3sas: Update driver version to 29.100.00.00 · 895d8860
      Suganath Prabu S authored
      Update driver version from 28.100.00.00 to 29.100.00.00
      This is equivalent to Phase 10 OOB driver.
      Signed-off-by: default avatarSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      895d8860
    • 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
    • Suganath Prabu S's avatar
      scsi: mpt3sas: Enable interrupt coalescing on high iops · 2426f209
      Suganath Prabu S authored
      Enable interrupt coalescing only on high iops queues.
      
      In ioc config page 1, offset 0x14 (ProductSpecific field) is used to
      determine interrupt coalescing enabled/disabled on per reply descriptor
      post queue group(8) basis.  If 31st bit is zero, then interrupt coalescing
      is enabled for all reply descriptor post queues. If 31st bit is set to one,
      then user can enable/disable interrupt coalescing on per reply descriptor
      post queue group(8) basis. So to enable interrupt coalescing only on first
      reply descriptor post queue group (i.e. on high iops queues), set bit 0 and
      31.
      
      This configuration should reset during driver unload or shutdown to the
      default settings. For this, the driver takes copy of default ioc page 1 and
      copies back the default or unmodified ioc page1 during unload and
      shutdown. This means that on next driver load (e.g. if older version driver
      is loaded by user), current modified changes on ioc page1 won't take
      effect.
      Signed-off-by: default avatarSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      2426f209