On Mon, Aug 19, 2019 at 09:40:10PM +0000, Bernard Metzler wrote: > >It is either an iova & lkey pair, or SGE information is inlined into > >the WR ring. > > > In siw, the reference to any type of memory is kept uninterpreted > in the send/receive queue until it gets accessed by a data > transfer. The information on what type of memory is being referenced > is deducted from the local memory key. As said, this step is > being executed only when the actual buffer is to be touched. > All it needs before that translation is to keep the 32bit key + > length and the up to 64bit address in a work queue element within > the send queue. > lkey lookup and memory translation + access validation happens > after the work queue element left the send/receive queue and a > local copy of it is being processed by the kernel driver > during RX or TX operations. > > Inline data is implemented similar to how HW providers do > it - user data are copied immediately into the WR array. I still don't understand how kernel void *'s are getting into WQEs. Jason