isert overflows RDMA QP SQ

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

 



Sagi,

We encountered an issue where the isert code overflows the RDMA QP SQ.
On QP creation the isert initializes 'max_send_wr' parameter according to the number of expected commands:
attr.cap.max_send_wr = ISERT_QP_MAX_REQ_DTOS + 1;

The issues seem to be that for some commands the number of WQEs posted to the SQ is more than just one.
The RDMA RW layer used to post the SQ WQEs may create multiple WQEs depending on the context and MR type and the number of SCSI SGEs.

In the scenario we are running the function 'rdma_rw_init_map_wrs' creates the number of WQEs by dividing the number of SGEs by the number of SGEs supported by the device:
u32 max_sge = dir == DMA_TO_DEVICE ? qp->max_write_sge :
		      qp->max_read_sge;
	ctx->nr_ops = DIV_ROUND_UP(sg_cnt, max_sge);

Could you please have a look?

Thanks,
Amit.





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux