> On Apr 26, 2016, at 4:42 PM, Sagi Grimberg <sagi@xxxxxxxxxxx> wrote: > > >>>> When deciding whether to send a Call inline, rpcrdma_marshal_req >>>> doesn't take into account header bytes consumed by chunk lists. >>>> This results in Call messages on the wire that are sometimes larger >>>> than the inline threshold. >>> >>> I'm not sure I understand why you need to account the chunk list size >>> when deciding on the inline data size., aren't chunk lists for remote >>> access only? >> >> The chunk lists and RPC message payload effectively >> share the same 1024-byte buffer (it's two buffers >> gathered, but the sum of the two buffer sizes has to >> be less than 1025). >> >> If the chunk lists are large, the RPC message size is >> reduced. >> > > I'm effectively asking when will a chunk list and inline data > would appear in the same message? > > Is it when we want to send the first X bytes inline and have the > remote read the rest Y-X bytes? > > Sorry if this is completely basic, just trying to understand if you > really need that upper limit... It's kind of subtle, actually. Consider the case when the ULP operation expects a large reply. When there is a Reply chunk or Write list, the client provides those via chunk lists in the header of the Call message. Thus those chunk lists share the 1024 bytes with the RPC Call message. If the chunk lists plus the Call message don't fit inline, then the client will have to send the Call message in a Read chunk (RDMA_NOMSG). -- Chuck Lever -- 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