summaryrefslogtreecommitdiff
path: root/drivers/block/aoe/aoenet.c
diff options
context:
space:
mode:
authorEd Cashin <ecashin@coraid.com>2013-07-03 22:09:05 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-03 23:08:05 (GMT)
commit8030d34397e066deecb5ee9d17387fa767b12de2 (patch)
treeb66a88cd47d47c46295ced5f5cd2ac073be19116 /drivers/block/aoe/aoenet.c
parentc378f70adbc1bbecd9e6db145019f14b2f688c7c (diff)
downloadlinux-8030d34397e066deecb5ee9d17387fa767b12de2.tar.xz
aoe: perform I/O completions in parallel
Some users have a large AoE target while others like to use many AoE targets at the same time. In the latter case, there is an opportunity to greatly improve aggregate throughput by allowing different threads to complete the I/O associated with each target. For 36 targets, 4 KiB read throughput roughly doubles, for example, with these changes in place. Signed-off-by: Ed Cashin <ecashin@coraid.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/block/aoe/aoenet.c')
-rw-r--r--drivers/block/aoe/aoenet.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
index 71d3ea8..4af5f06 100644
--- a/drivers/block/aoe/aoenet.c
+++ b/drivers/block/aoe/aoenet.c
@@ -52,7 +52,7 @@ static struct sk_buff_head skbtxq;
/* enters with txlock held */
static int
-tx(void) __must_hold(&txlock)
+tx(int id) __must_hold(&txlock)
{
struct sk_buff *skb;
struct net_device *ifp;
@@ -205,7 +205,8 @@ aoenet_init(void)
kts.lock = &txlock;
kts.fn = tx;
kts.waitq = &txwq;
- kts.name = "aoe_tx";
+ kts.id = 0;
+ snprintf(kts.name, sizeof(kts.name), "aoe_tx%d", kts.id);
if (aoe_ktstart(&kts))
return -EAGAIN;
dev_add_pack(&aoe_pt);