1
linux/drivers
Tejun Heo 5ddf24c5ea libata: implement EH fast drain
In most cases, when EH is scheduled, all in-flight commands are
aborted causing EH to kick in immediately.  However, in some cases
(especially with PMP), it's unclear which commands are affected by the
error condition and although aborting all in-flight commands work, it
isn't optimal and may cause unnecessary disruption.  On the other
hand, waiting for in-flight commands to drain themselves can take up
to 30seconds.

This patch implements EH fast drain to handle such situations.  It
gives in-flight commands some time to finish up but doesn't wait for
too long.  After EH is scheduled, fast drain timer is started and if
no other completion occurs in ATA_EH_FASTDRAIN_INTERVAL all in-flight
commands are aborted.  If any completion occurred in the interval, the
port is given another interval to finish up itself.

Currently ATA_EH_FASTDRAIN_INTERVAL is 3 secs which should be enough
for finishing up most commands.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-20 08:26:26 -04:00
..
acorn [PATCH] fix request->cmd == INT cases 2007-07-10 08:03:34 +02:00
acpi mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
amba
ata libata: implement EH fast drain 2007-07-20 08:26:26 -04:00
atm [ATM]: nicstar needs virt_to_bus 2007-07-18 02:13:42 -07:00
auxdisplay Use menuconfig objects II - auxdisplay 2007-07-16 09:05:40 -07:00
base PM: Do not require dev spew to get PM_DEBUG 2007-07-19 10:04:42 -07:00
block mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
bluetooth [Bluetooth] Remove the redundant non-seekable llseek method 2007-07-11 06:53:45 +02:00
cdrom bsg: add a request_queue argument to scsi_cmd_ioctl() 2007-07-16 08:52:45 +02:00
char random: fix bound check ordering (CVE-2007-3105) 2007-07-19 14:21:04 -07:00
clocksource PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
connector Use menuconfig objects: connector 2007-07-16 09:05:40 -07:00
cpufreq [CPUFREQ] Restore previously used governor on a hot-replugged CPU 2007-07-13 01:29:51 -04:00
crypto Use menuconfig objects: crypto hw 2007-07-16 09:05:40 -07:00
dio
dma dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs 2007-07-16 09:05:45 -07:00
edac drivers/edac: fix edac_device sysfs corner case bug 2007-07-19 10:04:57 -07:00
eisa
fc4
firewire firewire: fw-sbp2: convert to new SCSI data buffer accessors 2007-07-18 23:53:28 +02:00
firmware edd: switch to pci_get based API 2007-07-16 09:05:42 -07:00
hid USB: add reset_resume method 2007-07-12 16:34:30 -07:00
hwmon Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 2007-07-19 14:24:57 -07:00
i2c Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 2007-07-19 14:24:57 -07:00
ide ide: add support for SCSI ioctls to ide-floppy 2007-07-20 01:11:59 +02:00
ieee1394 mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
infiniband mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
input some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
isdn isdn/sc: compile breakage re check_reset() 2007-07-19 10:04:50 -07:00
kvm mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
leds
lguest lguest: the Makefile and Kconfig 2007-07-19 10:04:52 -07:00
macintosh some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
mca
md mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
media some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
message mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
mfd some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
misc some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
mmc some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
mtd mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
net Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2007-07-19 10:23:21 -07:00
nubus some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
oprofile
parisc serial: add early_serial_setup() back to header file 2007-07-18 08:38:22 -07:00
parport some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
pci some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
pcmcia PM: remove deprecated dpm_runtime_* routines 2007-07-18 15:49:49 -07:00
pnp some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
power Merge git://git.infradead.org/battery-2.6 2007-07-15 16:56:12 -07:00
ps3
rapidio some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
rtc RTC: add periodic irq support to rtc-cmos 2007-07-19 10:04:52 -07:00
s390 mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
sbus some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
scsi mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
serial some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
sh some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
sn some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
spi use mutex instead of semaphore in SPI core/init code 2007-07-17 10:23:05 -07:00
tc zs: move to the serial subsystem 2007-07-18 08:38:22 -07:00
telephony some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
uio UIO: Hilscher CIF card driver 2007-07-18 15:57:16 -07:00
usb mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2007-07-19 14:28:19 -07:00
w1 some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
xen xen: add the Xenbus sysfs and virtual device hotplug driver 2007-07-18 08:47:45 -07:00
zorro sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
Kconfig lguest: the Makefile and Kconfig 2007-07-19 10:04:52 -07:00
Makefile lguest: the Makefile and Kconfig 2007-07-19 10:04:52 -07:00