Skip to content

Commit

Permalink
scsi: mpt3sas: Use configured PCIe link speed, not max
Browse files Browse the repository at this point in the history
When enabling high iops queues, the driver should use the HBA's configured
PCIe link speed instead of looking for the maximum link speed.

I.e. enable high iops queues only if Aero/Sea HBA's configured PCIe link
speed is set to 16GT/s.

Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
  • Loading branch information
Sreekanth Reddy authored and Martin K. Petersen committed Jun 27, 2019
1 parent 381abbd commit 48d6f0a
Showing 1 changed file with 4 additions and 9 deletions.
13 changes: 4 additions & 9 deletions drivers/scsi/mpt3sas/mpt3sas_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -2979,7 +2979,7 @@ static void
_base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,
int hba_msix_vector_count)
{
enum pci_bus_speed speed = PCI_SPEED_UNKNOWN;
u16 lnksta, speed;

if (perf_mode == MPT_PERF_MODE_IOPS ||
perf_mode == MPT_PERF_MODE_LATENCY) {
Expand All @@ -2989,15 +2989,10 @@ _base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,

if (perf_mode == MPT_PERF_MODE_DEFAULT) {

speed = pcie_get_speed_cap(ioc->pdev);
dev_info(&ioc->pdev->dev, "PCIe device speed is %s\n",
speed == PCIE_SPEED_2_5GT ? "2.5GHz" :
speed == PCIE_SPEED_5_0GT ? "5.0GHz" :
speed == PCIE_SPEED_8_0GT ? "8.0GHz" :
speed == PCIE_SPEED_16_0GT ? "16.0GHz" :
"Unknown");
pcie_capability_read_word(ioc->pdev, PCI_EXP_LNKSTA, &lnksta);
speed = lnksta & PCI_EXP_LNKSTA_CLS;

if (speed < PCIE_SPEED_16_0GT) {
if (speed < 0x4) {
ioc->high_iops_queues = 0;
return;
}
Expand Down

0 comments on commit 48d6f0a

Please sign in to comment.