kernel-ark/arch/um/drivers
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
..
chan_kern.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
chan_user.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
cow_sys.h uml: remove user_util.h 2007-05-07 12:13:01 -07:00
cow_user.c
cow.h
daemon_kern.c [SK_BUFF]: Introduce skb_mac_header() 2007-04-25 22:24:41 -07:00
daemon_user.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
daemon.h
fd.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
harddog_kern.c [PATCH] mark struct file_operations const 2 2007-02-12 09:48:44 -08:00
harddog_user.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
hostaudio_kern.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
line.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
Makefile
mcast_kern.c [SK_BUFF]: Introduce skb_mac_header() 2007-04-25 22:24:41 -07:00
mcast_user.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
mcast.h
mconsole_kern.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
mconsole_user.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
mmapper_kern.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
net_kern.c uml: drivers get release methods 2007-05-07 12:13:02 -07:00
net_user.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
null.c [PATCH] uml: locking documentation 2006-09-29 09:18:04 -07:00
pcap_kern.c [SK_BUFF]: Introduce skb_mac_header() 2007-04-25 22:24:41 -07:00
pcap_user.c uml: network interface hotplug error handling 2007-05-07 12:13:00 -07:00
pcap_user.h [PATCH] missed const in prototype 2006-10-10 15:37:24 -07:00
port_kern.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
port_user.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
port.h
pty.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
random.c uml: start fixing os_read_file and os_write_file 2007-05-07 12:13:03 -07:00
slip_common.c
slip_common.h
slip_kern.c [SK_BUFF]: Introduce skb_mac_header() 2007-04-25 22:24:41 -07:00
slip_user.c uml: remove page_size() 2007-05-07 12:13:02 -07:00
slip.h
slirp_kern.c [SK_BUFF]: Introduce skb_mac_header() 2007-04-25 22:24:41 -07:00
slirp_user.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
slirp.h
ssl.c uml: fix umid in xterm titles 2007-05-07 12:13:02 -07:00
ssl.h
stderr_console.c [PATCH] uml: locking documentation 2006-09-29 09:18:04 -07:00
stdio_console.c uml: fix umid in xterm titles 2007-05-07 12:13:02 -07:00
stdio_console.h
tty.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
ubd_kern.c uml: batch I/O requests 2007-05-07 12:13:03 -07:00
ubd_user.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
xterm_kern.c [PATCH] uml pt_regs fixes 2006-10-08 16:34:08 -07:00
xterm.c uml: remove user_util.h 2007-05-07 12:13:01 -07:00
xterm.h