kernel-ark/include
Chen, Kenneth W e61c90188b [PATCH] optimize o_direct on block devices
Implement block device specific .direct_IO method instead of going through
generic direct_io_worker for block device.

direct_io_worker() is fairly complex because it needs to handle O_DIRECT on
file system, where it needs to perform block allocation, hole detection,
extents file on write, and tons of other corner cases.  The end result is
that it takes tons of CPU time to submit an I/O.

For block device, the block allocation is much simpler and a tight triple
loop can be written to iterate each iovec and each page within the iovec in
order to construct/prepare bio structure and then subsequently submit it to
the block layer.  This significantly speeds up O_D on block device.

[akpm@osdl.org: small speedup]
Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Zach Brown <zach.brown@oracle.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-13 09:05:50 -08:00
..
acpi [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
asm-alpha [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-arm [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-arm26 [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-avr32 Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32 2006-12-11 18:28:59 -08:00
asm-cris [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-frv [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-generic Make sure we populate the initroot filesystem late enough 2006-12-11 12:12:04 -08:00
asm-h8300 [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-i386 [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-ia64 [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-m32r [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-m68k [PATCH] Sun3: General updates 2006-12-09 09:41:18 -08:00
asm-m68knommu [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
asm-mips [MIPS] IP27: Don't drag <asm/sn/arch.h> into topology.h. 2006-12-12 01:46:24 +00:00
asm-parisc [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-powerpc [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-ppc Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc 2006-12-11 16:31:42 +11:00
asm-s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2006-12-08 11:21:55 -08:00
asm-sh [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-sh64 [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
asm-sparc [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-sparc64 [SPARC64]: Fix several kprobes bugs. 2006-12-10 02:42:03 -08:00
asm-um [PATCH] UML: add generic BUG support 2006-12-08 08:28:39 -08:00
asm-v850 [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-x86_64 [PATCH] PM: Fix SMP races in the freezer 2006-12-13 09:05:49 -08:00
asm-xtensa [PATCH] Xtensa: Add ktermios and minor filename fix 2006-12-13 09:05:50 -08:00
crypto [CRYPTO] lib: table driven multiplications in GF(2^128) 2006-12-06 18:38:55 -08:00
keys
linux [PATCH] optimize o_direct on block devices 2006-12-13 09:05:50 -08:00
math-emu
media V4L/DVB (4935): Added the capability of selecting fm gain by tuner 2006-12-10 09:05:52 -02:00
mtd
net [HAMRADIO]: Fix baycom_epp.c compile failure. 2006-12-11 14:35:01 -08:00
pcmcia
rdma IB: Add DMA mapping functions to allow device drivers to interpose 2006-12-12 14:27:41 -08:00
rxrpc
scsi [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
sound
video [PATCH] video: pm3fb macros fix 2006-12-08 08:29:08 -08:00
Kbuild