linux/include
Trond Myklebust 72cb77f4a5 NFS: Throttle page dirtying while we're flushing to disk
The following patch is a combination of a patch by myself and Peter
Staubach.

Trond: If we allow other processes to dirty pages while a process is doing
a consistency sync to disk, we can end up never making progress.

Peter: Attached is a patch which addresses a continuing problem with
the NFS client generating out of order WRITE requests.  While
this is compliant with all of the current protocol
specifications, there are servers in the market which can not
handle out of order WRITE requests very well.  Also, this may
lead to sub-optimal block allocations in the underlying file
system on the server.  This may cause the read throughputs to
be reduced when reading the file from the server.

Peter: There has been a lot of work recently done to address out of
order issues on a systemic level.  However, the NFS client is
still susceptible to the problem.  Out of order WRITE
requests can occur when pdflush is in the middle of writing
out pages while the process dirtying the pages calls
generic_file_buffered_write which calls
generic_perform_write which calls
balance_dirty_pages_rate_limited which ends up calling
writeback_inodes which ends up calling back into the NFS
client to writes out dirty pages for the same file that
pdflush happens to be working with.

Signed-off-by: Peter Staubach <staubach@redhat.com>
[modification by Trond to merge the two similar patches]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2009-03-11 14:10:30 -04:00
..
acpi ACPI: Enable bit 11 in _PDC to advertise hw coord 2009-02-07 00:41:14 -05:00
asm-arm
asm-frv FRV: __pte_to_swp_entry doesn't expand correctly 2009-02-17 14:05:30 -08:00
asm-generic Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-26 09:47:28 -08:00
asm-h8300
asm-m32r byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
asm-mn10300 byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
crypto crypto: shash - Fix tfm destruction 2009-02-05 16:51:25 +11:00
drm drm: disable encoders before re-routing them 2009-02-25 14:42:23 +10:00
keys
linux NFS: Throttle page dirtying while we're flushing to disk 2009-03-11 14:10:30 -04:00
math-emu
media Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-02-02 19:26:06 -08:00
mtd headers_check fix: mtd/inftl-user.h 2009-01-31 00:13:34 +05:30
net netns: Remove net_alive 2009-03-03 01:14:27 -08:00
pcmcia
rdma
rxrpc
scsi [SCSI] iscsi_tcp: make padbuf non-static 2009-01-13 10:41:34 -06:00
sound headers_check fix: sound/hdsp.h 2009-01-31 00:13:56 +05:30
trace sched, trace: update trace_sched_wakeup() 2008-12-25 13:10:21 +01:00
video atyfb: fix CONFIG_ namespace violations 2009-02-05 12:56:48 -08:00
xen xen: add xenfs to allow usermode <-> Xen interaction 2009-01-08 08:30:59 -08:00
Kbuild