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.

Thanks Sagi.  Are you OK with taking this patch as-is to address the immediate 
problem, then addressing the bigger issue in the future for both initiator
and target?

Chris

> > 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




[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