aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-throttle.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2012-06-04 23:40:56 -0400
committerJens Axboe <axboe@kernel.dk>2012-06-25 05:53:50 -0400
commit7f4b35d155a5f9e5748539a79558533aa08d6a81 (patch)
tree9e26e52852cd6b364d413b02b9c5379c5372be7e /block/blk-throttle.c
parenta06e05e6afab70b4b23c0a7975aaeae24b195cd6 (diff)
block: allocate io_context upfront
Block layer very lazy allocation of ioc. It waits until the moment ioc is absolutely necessary; unfortunately, that time could be inside queue lock and __get_request() performs unlock - try alloc - retry dancing. Just allocate it up-front on entry to block layer. We're not saving the rain forest by deferring it to the last possible moment and complicating things unnecessarily. This patch is to prepare for further updates to request allocation path. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-throttle.c')
-rw-r--r--block/blk-throttle.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/block/blk-throttle.c b/block/blk-throttle.c
index 5b0659512047..e287c19908c8 100644
--- a/block/blk-throttle.c
+++ b/block/blk-throttle.c
@@ -1123,9 +1123,6 @@ bool blk_throtl_bio(struct request_queue *q, struct bio *bio)
1123 goto out; 1123 goto out;
1124 } 1124 }
1125 1125
1126 /* bio_associate_current() needs ioc, try creating */
1127 create_io_context(GFP_ATOMIC, q->node);
1128
1129 /* 1126 /*
1130 * A throtl_grp pointer retrieved under rcu can be used to access 1127 * A throtl_grp pointer retrieved under rcu can be used to access
1131 * basic fields like stats and io rates. If a group has no rules, 1128 * basic fields like stats and io rates. If a group has no rules,