1. 20 7月, 2021 1 次提交
  2. 01 6月, 2021 2 次提交
  3. 19 3月, 2021 1 次提交
  4. 17 3月, 2021 1 次提交
  5. 09 2月, 2021 3 次提交
  6. 10 12月, 2020 7 次提交
    • S
    • S
      scsi: mpt3sas: Add persistent MPI trigger page · 0e17a87c
      Suganath Prabu S 提交于
      This page is used to store information about MPI (IOC Status & LogInfo)
      triggers.
      
       Driver Persistent Trigger Page-4 format:
       -------------------------------------------------------
       | 31       24 23           16 15         8 7          0|  Byte
       -------------------------------------------------------
       | PageType   | PageNumber    | Reserved  | PageVersion |  0x00
       --------------------------------------------------------
       | Reserved   | ExtPageType   |      ExtPageLength      |  0x04
       --------------------------------------------------------
       |          Reserved          | NumMpiTriggerEntries    |  0x08
       --------------------------------------------------------
       |             MPITriggerEntry[0]                       |  0x0C
       --------------------------------------------------------
       |               …                                      |
       --------------------------------------------------------
       |            MPITriggerEntry[19]                       |  0xA4
       --------------------------------------------------------
      
      NumMpiTriggerEntries:
      
      This field indicates number of MPI (IOC Status & LogInfo) trigger entries
      stored in this page. Currently driver is supporting a maximum of 20-MPI
      trigger entries.
      
      MPITriggerEntry:
      
       -----------------------------------------------------
       | 31                    16 15                     0 |
       -----------------------------------------------------
       |        Reserved         |      IOCStatus          |
       -----------------------------------------------------
       |                   IOCLogInfo                      |
       -----------------------------------------------------
      
      IOCStatus  => Status value from the IOC
      IOCLogInfo => Specific value that supplements the IOCStatus.
      
      Link: https://lore.kernel.org/r/20201126094311.8686-7-suganath-prabu.subramani@broadcom.comReported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      0e17a87c
    • S
      scsi: mpt3sas: Add persistent SCSI sense trigger page · 2a5c3a35
      Suganath Prabu S 提交于
      Trigger Page3 is used to store information about SCSI Sense triggers:
      
       Persistent Trigger Page-3
       ------------------------------------------------------------------
       | 31         24 23            16 15              8 7            0|    Byte
       ------------------------------------------------------------------
       | PageType      | PageNumber     | Reserved       | PageVersion  |    0x00
       ------------------------------------------------------------------
       | Reserved      | ExtPageType    |          ExtPageLen           |    0x04
       ------------------------------------------------------------------
       | Reserved      | NumScsiSense   |         TriggerEntries        |    0x08
       ------------------------------------------------------------------
       |               ScsiSenseTriggerEntry[0]                         |    0x0C
       ------------------------------------------------------------------
       |                    …        …                                  |
       ------------------------------------------------------------------
       |               ScsiSenseTriggerEntry[19]                        |    0x58
       ------------------------------------------------------------------
      
      NumScsiSenseTriggerEntries:
      
      This field indicates number of SCSI Sense trigger entries stored in this
      page. Currently driver is supporting a maximum of 20-SCSI Sense trigger
      entries.
      
      ScsiSenseTriggerEntry:
      
       -----------------------------------------------
       | 31      24 23       16 15       8 7       0 |
       -----------------------------------------------
       | Reserved   | SenseKey  |    ASC   |   ASCQ  |
       -----------------------------------------------
      
       ASCQ     => Additional Sense Code Qualifier
       ASC      => Additional Sense Code
       SenseKey => Sense Key values
      
       ASCQ     => Additional Sense Code Qualifier
       ASC      => Additional Sense Code
       SenseKey => Sense Key values
      
      Link: https://lore.kernel.org/r/20201126094311.8686-6-suganath-prabu.subramani@broadcom.comReported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      2a5c3a35
    • S
      scsi: mpt3sas: Add persistent Event trigger page · 71b3fb8f
      Suganath Prabu S 提交于
      Trigger Page2 is used to store information about Event triggers:
      
        31     24 23        16 15      8 7         0   Byte
       -----------------------------------------------
       |PageType  |PageNumber  |Reserved |PageVersion| 0x00
       -----------------------------------------------
       |Reserved  |ExtPageType |   ExtPageLength     | 0x04
       -----------------------------------------------
       |     Reserved          | NumMPIEventTriggers | 0x08
       -----------------------------------------------
       |                 MPIEventTriggerEntries      | 0x0C
       |                                             | 0xFC
       -----------------------------------------------
      
      Number of MPI Event Trigger Entries currently stored in this page.  If this
      is set to zero, there are no valid MPI-Event-Trigger entries available in
      this page.
      
      MPIEventTriggerEntry:
      
       - MPIEventCode [15:00]
         MPI Event code specified in MPI-Spec
      
       - MPIEventCodeSpecific [16:31]
         For Event Code “MPI2_EVENT_LOG_ENTRY_ADDED (0x0021)”,
         this field specifies the Log-Entry-Qualifier.
         For all other Event Codes, this field is reserved and not used
      
      Maximum of 20-event trigger entries can be stored in this page.
      
      Link: https://lore.kernel.org/r/20201126094311.8686-5-suganath-prabu.subramani@broadcom.comReported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      71b3fb8f
    • S
      scsi: mpt3sas: Add persistent Master trigger page · bb855f2a
      Suganath Prabu S 提交于
      Trigger Page 1 is used to store information about Master triggers.  Below
      are the Master trigger conditions:
      
        Bit[3]  Trigger condition for Device Removal event
        Bit[2]  Trigger condition for TM command issued by driver
        Bit[1]  Trigger condition for Adapter reset issued by driver
        Bit[0]  Trigger condition for IOC Fault state
      
      During driver load, if Master trigger type bit is enabled in the Persistent
      Trigger Page0, then read the Persistent Trigger Page1 and update the IOC
      instance's diag_trigger_master.MasterData with Persistent Trigger Page1's
      MasterTriggerFlags.
      
      Link: https://lore.kernel.org/r/20201126094311.8686-4-suganath-prabu.subramani@broadcom.comReported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      bb855f2a
    • S
      scsi: mpt3sas: Add persistent trigger pages support · aec93e8e
      Suganath Prabu S 提交于
      The user can set trigger values in order to collect the IOC's host trace
      buffer automatically upon detecting certain conditions. However, the
      trigger values that the user sets are not persistent across system reboot
      or reload of the driver.
      
      In order to make the user trigger settings persistent, these trigger values
      need to be saved in the IOC's NVRAM pages:
      
       - Driver Persistent Trigger Page 0:
           This page is used to store list of trigger types that are enabled
      
       - Driver Persistent Trigger Page 1:
           This page stores the list of Master triggers that are enabled
      
       - Driver Persistent Trigger Page 2:
           This page stores the list of MPI Event Triggers that are enabled
      
       - Driver Persistent Trigger Page 3:
           This page stores the list of SCSI Sense Triggers that are enabled
      
       - Driver Persistent Trigger Page 4:
           This page stores the list of IOCStatus-LogInfo Triggers that are
           enabled.
      
      Whenever user configures triggers, the driver persists the values in the
      corresponding trigger pages. When the driver is subsequently reloaded, the
      driver reads the values from the trigger pages and configures the triggers
      accordingly.
      
      During firmware upload operation, if the newer firmware supports the
      trigger page feature, then driver persists the configured diag trigger
      values to NVRAM.
      
      Link: https://lore.kernel.org/r/20201126094311.8686-3-suganath-prabu.subramani@broadcom.comReported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      aec93e8e
    • S
      scsi: mpt3sas: Sync time periodically between driver and firmware · f98790c0
      Suganath Prabu S 提交于
      The controller time currently gets updated with host time during driver
      load or when a controller reset is issued. I.e. when host issues the
      IOCInit request message to the HBA firmware. This IOCInit message has a
      field named 'TimeStamp' with which the host updates the controller time.
      
      Sometimes controller time drifts with respect to the host and it is
      difficult to correlate host logs with controller logs. Issuing a controller
      reset to sync the time would impact in-flight I/O and is not a viable
      option.
      
      Instead the driver now sends an IO_UNIT_CONTROL Request to sync the time
      periodically. This is done from the watchdog thread which gets invoked
      every second.
      
      The time synchronization interval is specified in the 'TimeSyncInterval'
      field in Manufacturing Page11 by the controller:
      
          TimeSyncInterval - 8 bits
      	bits  0-6: Time stamp Synchronization interval value
      	bit	7: Time stamp Synchronization interval unit,
      		   (if this bit is one then Timestamp Synchronization
      		   interval value is specified in terms of hours else
      		   Timestamp Synchronization interval value is
      		   specified in terms of minutes).
      
      The driver keeps track of the timer using IOC's timestamp_update_count
      field. This field value gets incremented whenever the watchdog thread gets
      invoked. And whenever this field value is greater than or equal to the Time
      Stamp Synchronization interval value, the driver sends the IO_UNIT_CONTROL
      Request message to controller to update the time and then it resets the
      timestamp_update_count field to zero.
      
      Link: https://lore.kernel.org/r/20201126094311.8686-2-suganath-prabu.subramani@broadcom.comReported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NSuganath Prabu S <suganath-prabu.subramani@broadcom.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      f98790c0
  7. 05 11月, 2020 10 次提交
  8. 21 8月, 2020 5 次提交
  9. 16 6月, 2020 1 次提交
  10. 08 5月, 2020 1 次提交
  11. 25 4月, 2020 3 次提交
  12. 03 1月, 2020 5 次提交