Roughly speaking, I think there needs to be an rdma_rw API that assists the ULP with setting its CQ and SQ sizes, since rdma_rw hides the registration mode (one of which, at least, consumes more SQEs than the other).
Hiding the registration mode was the largely the motivation for this... It buys us simplified implementation and inherently supports both IB and iWARP (which was annoying and only existing in svc but still suboptimal).
I'd like to introduce one new function call that surfaces the factor used to compute how many additional SQEs that rdma_rw will need. The ULP will invoke it before allocating new Send CQs.
I see your point... We should probably get a sense on how to size the completion queue. I think that this issue is solved with the CQ pool API that Christoph sent a while ago but was never pursued. The basic idea is that the core would create a pool of long CQs and then assigns queue-pairs depending on the sq+rq depth. If we were to pick it up would you consider using it?
I'll try to provide an RFC in the nfsd-rdma-rw-api topic branch.
Cool, lets see what you had in mind... -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html