linux/drivers/block
Mike Miller 491539982a cciss: read config to obtain max outstanding commands per controller
This patch changes the way we determine the maximum number of outstanding
commands for each controller.

Most Smart Array controllers can support up to 1024 commands, the notable
exceptions are the E200 and E200i.

The next generation of controllers which were just added support a mode of
operation called Zero Memory Raid (ZMR).  In this mode they only support
64 outstanding commands.  In Full Function Raid (FFR) mode they support
1024.

We have been setting the queue depth by arbitrarily assigning some value
for each controller.  We needed a better way to set the queue depth to
avoid lots of annoying "fifo full" messages.  So we made the driver a
little smarter.  We now read the config table and subtract 4 from the
returned value.  The -4 is to allow some room for ioctl calls which are
not tracked the same way as io commands are tracked.

Please consider this for inclusion.

Signed-off-by: Mike Miller <mike.miller@hp.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-04 10:40:09 -07:00
..
aoe block: avoid duplicate calls to get_part() in disk stat code 2008-05-07 10:15:46 +02:00
paride block: use blk_rq_init() to initialize the request 2008-04-29 14:48:55 +02:00
amiflop.c m68k: Return -ENODEV if no device is found 2008-05-18 13:28:50 -07:00
ataflop.c
brd.c Add 'rd' alias to new brd ramdisk driver 2008-06-05 14:23:12 -07:00
cciss_cmd.h
cciss_scsi.c cciss: fix warning oops on rmmod of driver 2008-04-21 09:50:09 +02:00
cciss_scsi.h
cciss.c cciss: read config to obtain max outstanding commands per controller 2008-07-04 10:40:09 -07:00
cciss.h
cpqarray.c proc: remove proc_root_driver 2008-04-29 08:06:18 -07:00
cpqarray.h
cryptoloop.c drivers: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:16:32 -04:00
DAC960.c
DAC960.h
floppy.c drivers/block/floppy.c: replace init_module&cleanup_module with module_init&module_exit 2008-04-29 08:06:03 -07:00
ida_cmd.h
ida_ioctl.h
Kconfig The ps2esdi driver was marked as BROKEN more than two years ago due to being 2008-03-17 09:03:05 +01:00
loop.c block: make queue flags non-atomic 2008-04-29 14:48:33 +02:00
Makefile The ps2esdi driver was marked as BROKEN more than two years ago due to being 2008-03-17 09:03:05 +01:00
nbd.c Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2008-04-29 08:18:03 -07:00
pktcdvd.c Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2008-04-29 08:18:03 -07:00
ps3disk.c block: no need to initialize rq->cmd in prepare_flush_fn hook 2008-04-29 14:48:54 +02:00
smart1,2.h
sunvdc.c
swim3.c
sx8.c block: replace remaining __FUNCTION__ occurrences 2008-04-21 09:51:04 +02:00
ub.c ub: Cosmetics 2008-05-02 10:25:52 -07:00
umem.c
umem.h
viodasd.c [POWERPC] iSeries: Remove unused mail address 2008-05-23 16:45:04 +10:00
virtio_blk.c virtio_blk: allow read-only disks 2008-05-30 15:09:44 +10:00
xd.c
xd.h
xen-blkfront.c xen: make blkif_getgeo static 2008-04-29 08:06:06 -07:00
xsysace.c
z2ram.c m68k: Return -ENODEV if no device is found 2008-05-18 13:28:50 -07:00