Thinking out loud: IIRC the message head and tail reside in the persistently registered and DMA mapped buffers with few exceptions. However, when page cache pages are involved, xprtrdma will do a DMA unmap as you say. So: - we don't have a problem transmitting a garbled request thanks to exactly-once receive semantics - we don't have a problem with the timing of registration and invalidation on the initiator because the PD's DMA lkey is used - we do have a problem with DMA unmap Using only persistently registered and DMA mapped Send buffers should avoid the need to signal all Sends. However, when page cache pages are involved, then the Send needs to be signaled, and the pages unmapped only after Send completion, to be completely safe.
How do you know when that happens? -- 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