kernel-hacking-2024-linux-s.../arch/um
Jeff Dike a0044bdf60 uml: batch I/O requests
Send as many I/O requests to the I/O thread as possible, even though it will
still only handle one at a time.  This provides an opportunity to reduce
latency by starting one request before the previous one has been finished in
the driver.

Request handling is somewhat modernized by requesting sg pieces of a request
and handling them separately, finishing off the entire request after all the
pieces are done.

When a request queue stalls, normally because its pipe to the I/O thread is
full, it is put on the restart list.  This list is processed by starting up
the queues on it whenever there is some indication that progress might be
possible again.  Currently, this happens in the driver interrupt routine.
Some requests have been finished, so there is likely to be room in the pipe
again.

This almost doubles throughput when copying data between devices, but made no
noticable difference on anything else I tried.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-07 12:13:03 -07:00
..
drivers uml: batch I/O requests 2007-05-07 12:13:03 -07:00
include uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
kernel uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
os-Linux uml: convert libc layer to call read and write 2007-05-07 12:13:03 -07:00
scripts [PATCH] (uml) sparse flags for userland glue are missing $(CF) 2007-03-14 15:27:48 -07:00
sys-i386 uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
sys-ia64
sys-ppc uml: remove user_util.h 2007-05-07 12:13:01 -07:00
sys-x86_64 uml: remove unused x86_64 code 2007-05-07 12:13:03 -07:00
config.release
defconfig [PATCH] i386: Add an option for the VIA C7 which sets appropriate L1 cache 2007-05-02 19:27:05 +02:00
Kconfig [PATCH] stacktrace doesn't work on uml 2007-03-14 15:27:49 -07:00
Kconfig.char [PATCH] uml: enable RAW 2007-03-01 14:53:38 -08:00
Kconfig.debug
Kconfig.i386 [PATCH] fix indentation-related breakage in Kconfig.i386 2007-01-30 08:39:21 -08:00
Kconfig.net
Kconfig.scsi
Kconfig.x86_64
Makefile
Makefile-i386
Makefile-ia64
Makefile-os-Linux
Makefile-ppc
Makefile-skas
Makefile-tt
Makefile-x86_64