Re: [PATCH] IB/isert: Adjust CQ size to HW limits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/4/2014 6:28 PM, Chris Moore wrote:

This is the isert version of the patch that Minh Tran submitted for iser.
isert has the same issue of trying to create a CQ with more CQEs than are supported by the hardware.


This overall seems fine to me.
But there is a related issue here I would like to see addressed as well.

What happens if we open enough connections to overflow the CQ (each
connection allocates a QP size X). I have this on my todo list
for iser initiator.

Cheers,
Sagi.

Signed-off-by: Chris Moore <chris.moore@xxxxxxxxxx>

---

diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index 3effa93..f837a23 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -225,12 +225,16 @@ isert_create_device_ib_res(struct isert_device *device)
  	struct isert_cq_desc *cq_desc;
  	struct ib_device_attr *dev_attr;
  	int ret = 0, i, j;
+	int max_rx_cqe, max_tx_cqe;

  	dev_attr = &device->dev_attr;
  	ret = isert_query_device(ib_dev, dev_attr);
  	if (ret)
  		return ret;

+	max_rx_cqe = min(ISER_MAX_RX_CQ_LEN, dev_attr->max_cqe);
+	max_tx_cqe = min(ISER_MAX_TX_CQ_LEN, dev_attr->max_cqe);
+
  	/* asign function handlers */
  	if (dev_attr->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS &&
  	    dev_attr->device_cap_flags & IB_DEVICE_SIGNATURE_HANDOVER) { @@ -272,7 +276,7 @@ isert_create_device_ib_res(struct isert_device *device)
  						isert_cq_rx_callback,
  						isert_cq_event_callback,
  						(void *)&cq_desc[i],
-						ISER_MAX_RX_CQ_LEN, i);
+						max_rx_cqe, i);
  		if (IS_ERR(device->dev_rx_cq[i])) {
  			ret = PTR_ERR(device->dev_rx_cq[i]);
  			device->dev_rx_cq[i] = NULL;
@@ -284,7 +288,7 @@ isert_create_device_ib_res(struct isert_device *device)
  						isert_cq_tx_callback,
  						isert_cq_event_callback,
  						(void *)&cq_desc[i],
-						ISER_MAX_TX_CQ_LEN, i);
+						max_tx_cqe, i);
  		if (IS_ERR(device->dev_tx_cq[i])) {
  			ret = PTR_ERR(device->dev_tx_cq[i]);
  			device->dev_tx_cq[i] = NULL;
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux