diff options
author | Mike Marciniszyn <mike.marciniszyn@qlogic.com> | 2011-12-23 11:12:10 -0500 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2012-01-03 23:54:01 -0500 |
commit | 8d4548f2b7407f7212f71831bb7b457ceb752709 (patch) | |
tree | ad1fb9783cccfbe803eeae77811f177659f9fd3d /drivers/infiniband | |
parent | 489471095170ed1c6d0341739a243461638b0e06 (diff) |
IB/qib: Default some module parameters optimally
Minimize the need for users to have to set module parameters to get
good performance.
The following two parameters are changed:
- rcvhdrcnt to twice the rcvegrcnt
- pcie_caps=0x51
The rcvhdrcnt at twice the egrcount allows the preemptive NAK code
during reception to function in 100% of the cases rather than a sender
jiffies-based timeout.
The pcie_caps default of 0x51 will set the proposed MaxPayload and
MaxReceiveReqest to 256 and 4096 respectively. The capabilities on
the root complex will be used to limit those values.
Reviewed-by: Ram Vepa <ram.vepa@qlogic.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@qlogic.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_iba7322.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/qib/qib_pcie.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c index e22735402649..41e92089e41b 100644 --- a/drivers/infiniband/hw/qib/qib_iba7322.c +++ b/drivers/infiniband/hw/qib/qib_iba7322.c | |||
@@ -3603,7 +3603,7 @@ static void qib_7322_config_ctxts(struct qib_devdata *dd) | |||
3603 | if (qib_rcvhdrcnt) | 3603 | if (qib_rcvhdrcnt) |
3604 | dd->rcvhdrcnt = max(dd->cspec->rcvegrcnt, qib_rcvhdrcnt); | 3604 | dd->rcvhdrcnt = max(dd->cspec->rcvegrcnt, qib_rcvhdrcnt); |
3605 | else | 3605 | else |
3606 | dd->rcvhdrcnt = max(dd->cspec->rcvegrcnt, | 3606 | dd->rcvhdrcnt = 2 * max(dd->cspec->rcvegrcnt, |
3607 | dd->num_pports > 1 ? 1024U : 2048U); | 3607 | dd->num_pports > 1 ? 1024U : 2048U); |
3608 | } | 3608 | } |
3609 | 3609 | ||
diff --git a/drivers/infiniband/hw/qib/qib_pcie.c b/drivers/infiniband/hw/qib/qib_pcie.c index 97a8bdf68e60..f695061d688e 100644 --- a/drivers/infiniband/hw/qib/qib_pcie.c +++ b/drivers/infiniband/hw/qib/qib_pcie.c | |||
@@ -560,9 +560,9 @@ static int qib_tune_pcie_coalesce(struct qib_devdata *dd) | |||
560 | * BIOS may not set PCIe bus-utilization parameters for best performance. | 560 | * BIOS may not set PCIe bus-utilization parameters for best performance. |
561 | * Check and optionally adjust them to maximize our throughput. | 561 | * Check and optionally adjust them to maximize our throughput. |
562 | */ | 562 | */ |
563 | static int qib_pcie_caps; | 563 | static int qib_pcie_caps = 0x51; |
564 | module_param_named(pcie_caps, qib_pcie_caps, int, S_IRUGO); | 564 | module_param_named(pcie_caps, qib_pcie_caps, int, S_IRUGO); |
565 | MODULE_PARM_DESC(pcie_caps, "Max PCIe tuning: Payload (4lsb), ReadReq (D4..7)"); | 565 | MODULE_PARM_DESC(pcie_caps, "Max PCIe tuning: Payload (0..3), ReadReq (4..7)"); |
566 | 566 | ||
567 | static int qib_tune_pcie_caps(struct qib_devdata *dd) | 567 | static int qib_tune_pcie_caps(struct qib_devdata *dd) |
568 | { | 568 | { |