On Thu, Oct 15, 2015 at 7:42 PM, Yishai Hadas <yishaih@xxxxxxxxxxxxxxxxxx> wrote: > On 10/15/2015 12:13 PM, Parav Pandit wrote: >> >> Just curious, why does WQ need to be bind to PD? >> Isn't ucontext sufficient? >> Or because kcontext doesn't exist, PD serves that role? >> Or Is this just manifestation of how hardware behave? > > > PD is an attribute of a work queue (i.e. send/receive queue), it's used by > the hardware for security validation before scattering to a memory region. > For that, an external WQ object needs a PD, letting the > hardware makes that validation. > >> Since you mentioned, "QP can be configured to use "external" WQ >> object", it might be worth to reuse the WQ across multiple QPs of >> different PD? > > > Correct, external WQ can be used across multiple QPs, in that case its PD is > used by the hardware for security validation when it accesses to the MR, in > that case the QP's PD is not in use. > I think I get it, just confirming with below example. So I think below is possible. WQ_A having PD=1. QP_A having PD=2 bound to WQ_A. QP_B having PD=3 bound to WQ_A. MR_X having PD=2. And checks are done between MR and QP. In other use case, MR is not at all used. (only physical addresses are used) WQ_A having PD=1. QP_A having PD=2 bound to WQ_A. QP_B having PD=3 bound to WQ_A. WQ entries fail as MR is not associated and QP are bound to different PD than the PD of WQ_A. Because at QP bound time with WQ, its unknown whether it will use MR or not in the WQE at run time. Right? >> Because MR and QP validation check has to happen among MR and actual >> QP and might not require that check against WQ. > > > No, in that case of an external WQ its PD is used and the QP's PD is not in > use. > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html