Re: [PATCH] knfsd: Stop NFSD writes from being broken into lots of little writes to filesystem.
On Tue, 13 Feb 2007 17:11:19 +1100 Nick Piggin <[EMAIL PROTECTED]> wrote: > NeilBrown wrote: > > Another nfsd patch for 2.6.21... > > > > ### Comments for Changeset > > > > When NFSD receives a write request, the data is typically in a number > > of 1448 byte segments and writev is used to collect them together. > > > > Unfortunately, generic_file_buffered_write passes these to the filesystem > > one at a time, so an e.g. 32K over-write becomes a series of partial-page > > writes to each page, causing the filesystem to have to pre-read those > > pages - wasted effort. > > > > generic_file_buffered_write handles one segment of the vector at a > > time as it has to pre-fault in each segment to avoid deadlocks. When > > writing from kernel-space (and nfsd does) this is not an issue, so > > generic_file_buffered_write does not need to break and iovec from nfsd > > into little pieces. > > > > This patch avoids the splitting when get_fs is KERNEL_DS as it is > > from NFSd. > > > > This issue was introduced by commit 6527c2bdf1f833cc18e8f42bd97973d583e4aa83 > > > > Cc: Nick Piggin <[EMAIL PROTECTED]> > > FWIW, you can put Acked-by: me there if you'd like. > It's yet another patch we need to revert if/when we get the write()-deadlock stuff sorted out. So please add negative-this to that patch series. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] knfsd: Stop NFSD writes from being broken into lots of little writes to filesystem.
NeilBrown wrote: Another nfsd patch for 2.6.21... ### Comments for Changeset When NFSD receives a write request, the data is typically in a number of 1448 byte segments and writev is used to collect them together. Unfortunately, generic_file_buffered_write passes these to the filesystem one at a time, so an e.g. 32K over-write becomes a series of partial-page writes to each page, causing the filesystem to have to pre-read those pages - wasted effort. generic_file_buffered_write handles one segment of the vector at a time as it has to pre-fault in each segment to avoid deadlocks. When writing from kernel-space (and nfsd does) this is not an issue, so generic_file_buffered_write does not need to break and iovec from nfsd into little pieces. This patch avoids the splitting when get_fs is KERNEL_DS as it is from NFSd. This issue was introduced by commit 6527c2bdf1f833cc18e8f42bd97973d583e4aa83 Cc: Nick Piggin <[EMAIL PROTECTED]> FWIW, you can put Acked-by: me there if you'd like. Thanks, Nick -- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/