Message ID | 1655988119-223714-1-git-send-email-john.garry@huawei.com |
---|---|
State | New |
Headers | show |
Series | scsi: hisi_sas: Limit max hw sectors for v3 HW | expand |
On Thu, 23 Jun 2022 20:41:59 +0800, John Garry wrote: > If the controller is behind an IOMMU then the IOMMU IOVA caching range can > affect performance, as discussed in [0]. > > Limit the max HW sectors to not exceed this limit. We need to hardcode > the value until a proper DMA mapping API is available. > > [0] https://lore.kernel.org/linux-iommu/20210129092120.1482-1-thunder.leizhen@huawei.com/ > > [...] Applied to 5.19/scsi-fixes, thanks! [1/1] scsi: hisi_sas: Limit max hw sectors for v3 HW https://git.kernel.org/mkp/scsi/c/fce54ed02757
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c index 7d819fc0395e..eb86afb21aab 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -2782,6 +2782,7 @@ static int slave_configure_v3_hw(struct scsi_device *sdev) struct hisi_hba *hisi_hba = shost_priv(shost); struct device *dev = hisi_hba->dev; int ret = sas_slave_configure(sdev); + unsigned int max_sectors; if (ret) return ret; @@ -2799,6 +2800,12 @@ static int slave_configure_v3_hw(struct scsi_device *sdev) } } + /* Set according to IOMMU IOVA caching limit */ + max_sectors = min_t(size_t, queue_max_hw_sectors(sdev->request_queue), + (PAGE_SIZE * 32) >> SECTOR_SHIFT); + + blk_queue_max_hw_sectors(sdev->request_queue, max_sectors); + return 0; }
If the controller is behind an IOMMU then the IOMMU IOVA caching range can affect performance, as discussed in [0]. Limit the max HW sectors to not exceed this limit. We need to hardcode the value until a proper DMA mapping API is available. [0] https://lore.kernel.org/linux-iommu/20210129092120.1482-1-thunder.leizhen@huawei.com/ Signed-off-by: John Garry <john.garry@huawei.com> --- This patch is intended as something which I can backport to stable. Series [1] is a proper fix but stuck, but I would not plan to backport it anyway. [1] https://lore.kernel.org/linux-scsi/1654507822-168026-1-git-send-email-john.garry@huawei.com/T/#m069f33edd547533301e2af156ebd6badee199dea