1. 09 2月, 2019 4 次提交
    • J
      scsi: hisi_sas: Do some more tidy-up · 4a8bec88
      John Garry 提交于
      Do some very minor tidy-up, for things like needlessly initing variable and
      not leaving whitespace before quote endings.
      
      Originally-from: Xiang Chen <chenxiang66@hisilicon.com>
      Originally-from: Luo Jiaxing <luojiaxing@huawei.com>
      Signed-off-by: NJohn Garry <john.garry@huawei.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      4a8bec88
    • X
      scsi: hisi_sas: Use pci_irq_get_affinity() for v3 hw as experimental · 4fefe5bb
      Xiang Chen 提交于
      For auto-control irq affinity mode, choose the dq to deliver IO according
      to the current CPU.
      
      Then it decreases the performance regression that fio and CQ interrupts are
      processed on different node.
      
      For user control irq affinity mode, keep it as before.
      
      To realize it, also need to distinguish the usage of dq lock and sas_dev
      lock.
      
      We mark as experimental due to ongoing discussion on managed MSI IRQ
      during hotplug:
      https://marc.info/?l=linux-scsi&m=154876335707751&w=2
      
      We're almost at the point where we can expose multiple queues to the upper
      layer for SCSI MQ, but we need to sort out the per-HBA tags performance
      issue.
      Signed-off-by: NXiang Chen <chenxiang66@hisilicon.com>
      Signed-off-by: NJohn Garry <john.garry@huawei.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      4fefe5bb
    • J
      scsi: hisi_sas: Issue internal abort on all relevant queues · 795f25a3
      John Garry 提交于
      To support queue mapped to a CPU, it needs to be ensured that issuing an
      internal abort is safe, in that it is guaranteed that an internal abort is
      processed for a single IO or a device after all the relevant command(s)
      which it is attempting to abort have been processed by the controller.
      
      Currently we only deliver commands for any device on a single queue to
      solve this problem, as we know that commands issued on the same queue will
      be processed in order, and we will not have a scenario where the internal
      abort is racing against a command(s) which it is trying to abort.
      
      To enqueue commands on queue mapped to a CPU, choosing a queue for an
      command is based on the associated queue for the current CPU, so this is
      not safe for internal abort since it would definitely not be guaranteed
      that commands for the command devices are issued on the same queue.
      
      To solve this issue, we take a bludgeoning approach, and issue a separate
      internal abort on any queue(s) relevant to the command or device, in that
      we will be guaranteed that at least one of these internal aborts will be
      received last in the controller.
      
      So, for aborting a single command, we can just force the internal abort to
      be issued on the same queue as the command which we are trying to abort.
      
      For aborting all commands associated with a device, we issue a separate
      internal abort on all relevant queues. Issuing multiple internal aborts in
      this fashion would have not side affect.
      Signed-off-by: NJohn Garry <john.garry@huawei.com>
      Signed-off-by: NXiang Chen <chenxiang66@hisilicon.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      795f25a3
    • X
      scsi: hisi_sas: Add support for DIX feature for v3 hw · b3cce125
      Xiang Chen 提交于
      This patch adds support for DIX to v3 hw driver.
      
      For this, we build upon support for DIF, most significantly is adding new
      DMA map and unmap paths.
      
      Some pre-existing macro precedence issues are also tidied. They were
      detected by checkpatch --strict.
      Signed-off-by: NXiang Chen <chenxiang66@hisilicon.com>
      Signed-off-by: NJohn Garry <john.garry@huawei.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      b3cce125
  2. 29 1月, 2019 5 次提交
  3. 09 1月, 2019 5 次提交
  4. 19 12月, 2018 2 次提交
  5. 13 12月, 2018 2 次提交
  6. 16 11月, 2018 5 次提交
  7. 06 11月, 2018 1 次提交
    • Y
      scsi: hisi_sas: Remove set but not used variable 'dq_list' · e34ff8ed
      YueHaibing 提交于
      Fixes gcc '-Wunused-but-set-variable' warning:
      
      drivers/scsi/hisi_sas/hisi_sas_v1_hw.c: In function 'start_delivery_v1_hw':
      drivers/scsi/hisi_sas/hisi_sas_v1_hw.c:907:20: warning:
       variable 'dq_list' set but not used [-Wunused-but-set-variable]
      
      drivers/scsi/hisi_sas/hisi_sas_v2_hw.c: In function 'start_delivery_v2_hw':
      drivers/scsi/hisi_sas/hisi_sas_v2_hw.c:1671:20: warning:
       variable 'dq_list' set but not used [-Wunused-but-set-variable]
      
      drivers/scsi/hisi_sas/hisi_sas_v3_hw.c: In function 'start_delivery_v3_hw':
      drivers/scsi/hisi_sas/hisi_sas_v3_hw.c:889:20: warning:
       variable 'dq_list' set but not used [-Wunused-but-set-variable]
      
      It never used since introduction in commit
      fa222db0 ("scsi: hisi_sas: Don't lock DQ for complete task sending")
      Signed-off-by: NYueHaibing <yuehaibing@huawei.com>
      Acked-by: NJohn Garry <john.garry@huawei.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      e34ff8ed
  8. 16 10月, 2018 4 次提交
  9. 20 7月, 2018 6 次提交
  10. 20 6月, 2018 4 次提交
  11. 29 5月, 2018 2 次提交