On Wed, Oct 19, 2016 at 03:21:02PM -0400, Chuck Lever wrote: > > On Oct 19, 2016, at 3:16 PM, J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > > I thought "moving pages around" here is basically just this, from > > isvc_rdma_sendto.c:send_reply(): > > > > pages = rqstp->rq_next_page - rqstp->rq_respages; > > for (page_no = 0; page_no < pages; page_no++) { > > ctxt->pages[page_no+1] = rqstp->rq_respages[page_no]; > > ... > > rqstp->rq_respages[page_no] = NULL; > > ... > > } > > > > So we're just copying an array of page pointers from one place to > > another, and zeroing out the source array. > > > > For a short reply that could be 1 page or even none. In the worst case > > (a 1MB read result) that could be 256 8-byte pointers, so 2K. > > > > Am I missing something? Has that up-to-2K operation been a problem? > > Not a problem, but not optimal either. Like I said, I can put together > some helpers so that this code is not duplicated, and the call-sites > would be a little easier to understand. Sure, I've no objection if you find some cleanup that makes sense. --b. -- 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