Re: nfsd: managing pages under network I/O

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux