Messages in this thread | | | Subject | Re: [PATCH] nfs: fix congestion control | From | Peter Zijlstra <> | Date | Wed, 17 Jan 2007 15:29:46 +0100 |
| |
On Wed, 2007-01-17 at 08:50 -0500, Trond Myklebust wrote: > On Wed, 2007-01-17 at 09:49 +0100, Peter Zijlstra wrote: > > > They are certainly _not_ dirty pages. They are pages that have been > > > written to the server but are not yet guaranteed to have hit the disk > > > (they were only written to the server's page cache). We don't care if > > > they are paged in or swapped out on the local client. > > > > > > \All the COMMIT does, is to ask the server to write the data from its > > > page cache onto disk. Once that has been done, we can release the pages. > > > If the commit fails, then we iterate through the whole writepage() > > > process again. The commit itself does, however, not even look at the > > > page data. > > > > Thou art correct from an NFS point of view, however for the VM they are > > (still) just dirty pages and we need shed them. > > > > You talk of swapping them out, they are filecache pages not swapcache > > pages. The writepage() process needs to complete and that entails > > committing them. > > My point is that we can and should collect as many of the little buggers > as we can and treat them with ONE commit call. We don't look at the > data, we don't lock the pages, we don't care what the VM is doing with > them. Throttling is not only unnecessary, it is actually a bad idea > since it slows up the rate at which we can free up the pages.
Ah, OK.
I was thinking that since the server needs to actually sync the page a commit might be quite expensive (timewise), hence I didn't want to flush too much, and interleave them with writing out some real pages to utilise bandwidth.
But if you think I should just bulk commit I can do that.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |