On Tue, Aug 04, 2015 at 08:06:16PM +0300, Sagi Grimberg wrote: > Question though, a ULP may want to keep a couple of WRs around instead > of having each allocated in the stack and handled one by one. We need > to provide it with a hint of what is the size it needs.
Note that with the drastic shrink of the struct size the typical case of needing a fast_reg + one send or a few rdma wr should be just fine on stack now. Even more so with your registration cleanups which will drastically shrink the size of the fast reg mrs again. > I just posted a patch to do that in iser > (http://www.spinics.net/lists/linux-rdma/msg27632.html). That's actually part of the reason why I didn't manage to convert iser as it seems so convoluted.. > So if I would want to preallocate an array of work requests, what is the > size of the space I'd need? > is it some form of max(sizeof(struct ib_send_wr), > sizeof(struct ib_fastreg_wr), > sizeof(struct sig_handover), ..)? Preferably you'd preallocate them in a type safe manner, if you really need to overlay them do it as a proper union. For example the rds code is doing that although it only preallocates on per work item. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html