summaryrefslogtreecommitdiff
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 17:50:36 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 17:50:36 -0800
commite73dff56fdff565457c7788712e9042771bec106 (patch)
treef7d4619ec8692ef21fb9ff34c20568ab56c67c4f /include/linux/blkdev.h
parent950a2b0b551d258daad060b9566910ca351d176a (diff)
v2.4.0.5 -> v2.4.0.6
- blk-14 from Jens Axboe
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 0ea8f7064ba7..01cd38a8368e 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -64,9 +64,10 @@ typedef void (plug_device_fn) (request_queue_t *q, kdev_t device);
typedef void (unplug_device_fn) (void *q);
/*
- * Default nr free requests per queue
+ * Default nr free requests per queue, ll_rw_blk will scale it down
+ * according to available RAM at init time
*/
-#define QUEUE_NR_REQUESTS 512
+#define QUEUE_NR_REQUESTS 8192
struct request_queue
{
@@ -176,6 +177,8 @@ extern int * max_sectors[MAX_BLKDEV];
extern int * max_segments[MAX_BLKDEV];
+extern atomic_t queued_sectors;
+
#define MAX_SEGMENTS 128
#define MAX_SECTORS (MAX_SEGMENTS*8)
@@ -203,5 +206,14 @@ static inline int get_hardsect_size(kdev_t dev)
return 512;
}
+#define blk_finished_io(nsects) \
+ atomic_sub(nsects, &queued_sectors); \
+ if (atomic_read(&queued_sectors) < 0) { \
+ printk("block: queued_sectors < 0\n"); \
+ atomic_set(&queued_sectors, 0); \
+ }
+
+#define blk_started_io(nsects) \
+ atomic_add(nsects, &queued_sectors);
#endif