linux/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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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
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 [PATCH] uml: remove syscall debugging 2006-07-10 13:24:24 -07:00
Kconfig.i386 [PATCH] fix indentation-related breakage in Kconfig.i386 2007-01-30 08:39:21 -08:00
Kconfig.net [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.scsi [PATCH] uml: Rename Kconfig files to be like the other arches 2005-09-05 00:06:19 -07:00
Kconfig.x86_64 [PATCH] um: fix undefined reference to hweight32 2006-03-26 08:57:09 -08:00
Makefile [PATCH] uml: fix compilation options for USER_OBJS 2006-10-30 12:08:41 -08:00
Makefile-i386 [PATCH] uml: fix compilation options for USER_OBJS 2006-10-30 12:08:41 -08:00
Makefile-ia64 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-os-Linux Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-ppc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-skas [PATCH] uml makefiles sanitized 2005-09-29 08:46:26 -07:00
Makefile-tt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile-x86_64 [PATCH] uml: fix compilation options for USER_OBJS 2006-10-30 12:08:41 -08:00
config.release Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defconfig [PATCH] i386: Add an option for the VIA C7 which sets appropriate L1 cache 2007-05-02 19:27:05 +02:00