Jens Axboe
a6f23657d3
block: add one-hit cache for disk partition lookup
...
disk_map_sector_rcu() returns a partition from a sector offset,
which we use for IO statistics on a per-partition basis. The
lookup itself is an O(N) list lookup, where N is the number of
partitions. This actually hurts performance quite a bit, even
on the lower end partitions. On higher numbered partitions,
it can get pretty bad.
Solve this by adding a one-hit cache for partition lookup.
This makes the lookup O(1) for the case where we do most IO to
one partition. Even for mixed partition workloads, amortized cost
is pretty close to O(1) since the natural IO batching makes the
one-hit cache last for lots of IOs.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2008-12-29 08:29:51 +01:00
..
as-iosched.c
block: get rid of elevator_t typedef
2008-12-29 08:29:50 +01:00
blk-barrier.c
block: fix empty barrier on write-through w/ ordered tag
2008-12-29 08:28:45 +01:00
blk-core.c
block: don't use plugging on SSD devices
2008-12-29 08:28:45 +01:00
blk-exec.c
blk-integrity.c
block: Switch blk_integrity_compare from bdev to gendisk
2008-10-09 08:56:21 +02:00
blk-ioc.c
blk-map.c
When block layer fails to map iov, it calls bio_unmap_user to undo
2008-12-03 12:41:20 +01:00
blk-merge.c
block: remove unused ll_new_mergeable()
2008-11-06 08:41:55 +01:00
blk-settings.c
block: fix setting of max_segment_size and seg_boundary mask
2008-12-03 12:55:55 +01:00
blk-softirq.c
block: add fault injection mechanism for faking request timeouts
2008-10-09 08:56:17 +02:00
blk-sysfs.c
block: don't take lock on changing ra_pages
2008-12-29 08:28:43 +01:00
blk-tag.c
block/blk-tag.c: cleanup kernel-doc
2008-12-29 08:28:43 +01:00
blk-timeout.c
block: leave the request timeout timer running even on an empty list
2008-12-29 08:28:42 +01:00
blk.h
block: remove __generic_unplug_device() from exports
2008-10-17 14:03:08 +02:00
blktrace.c
blktrace: port to tracepoints
2008-11-26 12:13:34 +01:00
bsg.c
Enforce a minimum SG_IO timeout
2008-12-05 14:49:18 -08:00
cfq-iosched.c
cfq-iosched: remove limit of dispatch depth of max 4 times quantum
2008-12-29 08:29:51 +01:00
cmd-filter.c
[PATCH] introduce fmode_t, do annotations
2008-10-21 07:47:06 -04:00
compat_ioctl.c
block: don't take lock on changing ra_pages
2008-12-29 08:28:43 +01:00
deadline-iosched.c
block: get rid of elevator_t typedef
2008-12-29 08:29:50 +01:00
elevator.c
block: get rid of elevator_t typedef
2008-12-29 08:29:50 +01:00
genhd.c
block: add one-hit cache for disk partition lookup
2008-12-29 08:29:51 +01:00
ioctl.c
block: don't take lock on changing ra_pages
2008-12-29 08:28:43 +01:00
Kconfig
blktrace: port to tracepoints
2008-11-26 12:13:34 +01:00
Kconfig.iosched
Makefile
noop-iosched.c
block: get rid of elevator_t typedef
2008-12-29 08:29:50 +01:00
scsi_ioctl.c
scsi-ioctl: use clock_t <> jiffies
2008-12-29 08:28:42 +01:00