block: add blk-iopoll, a NAPI like approach for block devices
authorJens Axboe <jens.axboe@oracle.com>
Wed, 5 Aug 2009 07:07:21 +0000 (09:07 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 11 Sep 2009 12:33:31 +0000 (14:33 +0200)
commit5e605b64a183a6c0e84cdb99a6f8acb1f8200437
tree1133a343bea602cb1bd8ee744c5997ce42a69b54
parentfb1e75389bd06fd5987e9cda1b4e0305c782f854
block: add blk-iopoll, a NAPI like approach for block devices

This borrows some code from NAPI and implements a polled completion
mode for block devices. The idea is the same as NAPI - instead of
doing the command completion when the irq occurs, schedule a dedicated
softirq in the hopes that we will complete more IO when the iopoll
handler is invoked. Devices have a budget of commands assigned, and will
stay in polled mode as long as they continue to consume their budget
from the iopoll softirq handler. If they do not, the device is set back
to interrupt completion mode.

This patch holds the core bits for blk-iopoll, device driver support
sold separately.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/Makefile
block/blk-iopoll.c [new file with mode: 0644]
include/linux/blk-iopoll.h [new file with mode: 0644]
include/linux/interrupt.h
kernel/sysctl.c