kernel-fxtec-pro1x/include
Andrew Morton fe1dcbc4f3 [PATCH] jbd: fix transaction batching
Ben points out that:

  When writing files out using O_SYNC, jbd's 1 jiffy delay results in a
  significant drop in throughput as the disk sits idle.  The patch below
  results in a 4-5x performance improvement (from 6.5MB/s to ~24-30MB/s on my
  IDE test box) when writing out files using O_SYNC.

So optimise the batching code by omitting it entirely if the process which is
doing a sync write is the same as the one which did the most recent sync
write.  If that's true, we're unlikely to get any other processes joining the
transaction.

(Has been in -mm for ages - it took me a long time to get on to performance
testing it)

Numbers, on write-cache-disabled IDE:

/usr/bin/time -p synctest -n 10 -uf -t 1 -p 1 dir-name

Unpatched:
	40 seconds
Patched:
	35 seconds
Batching disabled:
	35 seconds

This is the problematic single-process-doing-fsync case.  With multiple
fsyncing processes the numbers are AFACIT unaltered by the patch.

Aside: performance testing and instrumentation shows that the transaction
batching almost doesn't help (testing with synctest -n 1 -uf -t 100 -p 10
dir-name on non-writeback-caching IDE).  This is because by the time one
process is running a synchronous commit, a bunch of other processes already
have a transaction handle open, so they're all going to batch into the same
transaction anyway.

The batching seems to offer maybe 5-10% speedup with this workload, but I'm
pretty sure it was more important than that when it was first developed 4-odd
years ago...

Cc: "Stephen C. Tweedie" <sct@redhat.com>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-05 11:06:53 -08:00
..
acpi [ACPI] ACPICA 20060127 2006-01-31 03:25:09 -05:00
asm-alpha [PATCH] alpha: dma-mapping.h: add "struct scatterlist;" 2006-02-01 08:53:11 -08:00
asm-arm [ARM] 3284/1: S3C2400 - adds support to GPIO 2006-02-01 21:24:23 +00:00
asm-arm26 [PATCH] arm26: add __kernel_old_dev_t for nfsd 2006-02-01 08:53:22 -08:00
asm-cris [PATCH] include/asm-*/bitops.h: fix more "~0UL >> size" typos 2006-02-03 08:32:02 -08:00
asm-frv [PATCH] include/asm-*/bitops.h: fix more "~0UL >> size" typos 2006-02-03 08:32:02 -08:00
asm-generic [PATCH] Use atomic64_set for 64-bit case of atomic_long_set 2006-01-15 10:17:07 -08:00
asm-h8300 [PATCH] include/asm-*/bitops.h: fix more "~0UL >> size" typos 2006-02-03 08:32:02 -08:00
asm-i386 [PATCH] Export cpu topology in sysfs 2006-02-03 08:32:09 -08:00
asm-ia64 [PATCH] ia64: drop arch-specific IDE MAX_HWIFS definition 2006-02-03 08:32:11 -08:00
asm-m32r [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-m68k [PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers 2006-01-12 09:09:05 -08:00
asm-m68knommu [PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers 2006-01-12 09:09:05 -08:00
asm-mips [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-parisc [PARISC] New syscalls (inotify, *at, pselect6/ppoll, migrate_pages) 2006-01-30 00:53:14 -05:00
asm-powerpc [PATCH] powerpc: fix for kexec ppc32 2006-02-01 08:53:19 -08:00
asm-ppc [PATCH] ppc: Remove powermac support from ARCH=ppc 2006-01-15 17:30:44 +11:00
asm-s390 [PATCH] s390: compile fix: missing defines in asm-s390/io.h 2006-02-03 08:32:01 -08:00
asm-sh [PATCH] sh/sh64: Fix bogus TIOCGICOUNT definitions 2006-02-01 08:53:20 -08:00
asm-sh64 [PATCH] sh/sh64: Fix bogus TIOCGICOUNT definitions 2006-02-01 08:53:20 -08:00
asm-sparc [SPARC]: Add support for *at(), ppoll, and pselect syscalls. 2006-01-19 02:42:49 -08:00
asm-sparc64 [SPARC64]: Implement __raw_read_trylock() 2006-01-23 21:03:56 -08:00
asm-um [PATCH] uml: avoid "CONFIG_NR_CPUS undeclared" bogus error messages 2006-02-01 08:53:23 -08:00
asm-v850 [PATCH] include/asm-*/bitops.h: fix more "~0UL >> size" typos 2006-02-03 08:32:02 -08:00
asm-x86_64 Revert "[PATCH] x86_64: Fix the node cpumask of a cpu going down" 2006-02-05 10:51:57 -08:00
asm-xtensa [PATCH] xtensa: add asm/futex.h 2006-02-01 08:53:23 -08:00
keys
linux [PATCH] jbd: fix transaction batching 2006-02-05 11:06:53 -08:00
math-emu
media V4L/DVB (3388): tuner_params->tda988x is currently unused, so disable 2006-01-15 21:28:17 -02:00
mtd
net [NET]: Add CONFIG_NETDEBUG to suppress bad packet messages. 2006-02-02 20:40:09 -08:00
pcmcia
rdma IB: Add node_guid to struct ib_device 2006-01-10 07:39:34 -08:00
rxrpc
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2006-01-31 13:12:41 -08:00
sound [PATCH] DocBook: fix kernel-doc comments 2006-01-10 08:01:53 -08:00
video [PATCH] include/video/newport.h: "extern inline" -> "static inline" 2006-01-10 08:01:50 -08:00