summaryrefslogtreecommitdiffstats
path: root/block/ll_rw_blk.c
diff options
context:
space:
mode:
authorVasily Tarasov <vtaras@openvz.org>2007-04-25 12:29:51 +0200
committerJens Axboe <axboe@nelson.home.kernel.dk>2007-04-30 09:01:23 +0200
commit91fac317a34859986a2359a5a5c0e37dc17a9c3d (patch)
tree353b8e5d3415e6244b8d2de67020bbbc94f2032c /block/ll_rw_blk.c
parentcc19747977824ece6aa1c56a29e974fef5ec2b32 (diff)
downloadblackbird-op-linux-91fac317a34859986a2359a5a5c0e37dc17a9c3d.tar.gz
blackbird-op-linux-91fac317a34859986a2359a5a5c0e37dc17a9c3d.zip
cfq-iosched: get rid of cfqq hash
cfq hash is no more necessary. We always can get cfqq from io context. cfq_get_io_context_noalloc() function is introduced, because we don't want to allocate cic on merging and checking may_queue. In order to identify sync queue we've used hash key = CFQ_KEY_ASYNC. Since hash is eliminated we need to use other criterion: sync flag for queue is added. In all places where we dig in rb_tree we're in current context, so no additional locking is required. Advantages of this patch: no additional memory for hash, no seeking in hash, code is cleaner. But it is necessary now to seek cic in per-ioc rbtree, but it is faster: - most processes work only with few devices - most systems have only few block devices - it is a rb-tree Signed-off-by: Vasily Tarasov <vtaras@openvz.org> Changes by me: - Merge into CFQ devel branch - Get rid of cfq_get_io_context_noalloc() - Fix various bugs with dereferencing cic->cfqq[] with offset other than 0 or 1. - Fix bug in cfqq setup, is_sync condition was reversed. - Fix bug where only bio_sync() is used, we need to check for a READ too Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/ll_rw_blk.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud