diff options
author | Tejun Heo <tj@kernel.org> | 2012-06-04 23:40:56 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-06-25 05:53:50 -0400 |
commit | 7f4b35d155a5f9e5748539a79558533aa08d6a81 (patch) | |
tree | 9e26e52852cd6b364d413b02b9c5379c5372be7e /block/blk-throttle.c | |
parent | a06e05e6afab70b4b23c0a7975aaeae24b195cd6 (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.c | 3 |
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, |