aoe: performance enhancements through v83
Subsystems (2)
cover aoe: performance enhancements through v83
This patch series applies to today's linux-next/akpm, commit cbbc4a736dfca9a1ade0b13219d98d12601c1c06.
This second submission includes a comment in the first patch suggested by Andrew Morton.
Ed L. Cashin (3):
aoe: perform I/O completions in parallel
aoe: update copyright date
aoe: update internal version number to v83
drivers/block/aoe/aoe.h | 11 ++- drivers/block/aoe/aoecmd.c | 154 ++++++++++++++++++++++++++++++++++++-------- drivers/block/aoe/aoedev.c | 3 +- drivers/block/aoe/aoenet.c | 7 +- 4 files changed, 139 insertions(+), 36 deletions(-)
PATCH 1/3 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.
--- drivers/block/aoe/aoe.h | 7 ++- drivers/block/aoe/aoecmd.c | 152 ++++++++++++++++++++++++++++++++++++-------- drivers/block/aoe/aoedev.c | 1 - drivers/block/aoe/aoenet.c | 5 +- 4 files changed, 134 insertions(+), 31 deletions(-)
drivers/block/aoe/aoe.h +5 -2
@@ -196,9 +196,11 @@ struct ktstate {struct completion rendez;struct task_struct *task;wait_queue_head_t *waitq; -int (*fn) (void ); -char *name; +int (*fn) (int ); +char name[12 ];spinlock_t *lock; +int id; +int active; };int aoeblk_init (void );
@@ -222,6 +224,7 @@ int aoecmd_init(void);struct sk_buff *aoecmd_ata_id (struct aoedev *);void aoe_freetframe (struct frame *);void aoe_flush_iocq (void ); +void aoe_flush_iocq_by_index (int );void aoe_end_request (struct aoedev *,struct request *,int );int aoe_ktstart (struct ktstate *k);void aoe_ktstop (struct ktstate *k);
drivers/block/aoe/aoecmd.c +126 -26
226 lines not on this page · raw message
drivers/block/aoe/aoedev.c +0 -1
@@ -518,7 +518,6 @@ voidaoedev_exit (void) {flush_scheduled_work (); -aoe_flush_iocq ();flush (NULL ,0 ,EXITING ); }
drivers/block/aoe/aoenet.c +3 -2
@@ -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);
Signature · 1 line
1.7.1
PATCH 2/3 aoe: update copyright date
In reply to Ed Cashin--- drivers/block/aoe/aoe.h | 2 +- drivers/block/aoe/aoecmd.c | 2 +- drivers/block/aoe/aoedev.c | 2 +- drivers/block/aoe/aoenet.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
drivers/block/aoe/aoe.h +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2012 Coraid, Inc. See COPYING for GPL terms. */ +/* Copyright (c) 2013 Coraid, Inc. See COPYING for GPL terms. */ #define VERSION "81"#define AOE_MAJOR 152#define DEVICE_NAME "aoe"
drivers/block/aoe/aoecmd.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2012 Coraid, Inc. See COPYING for GPL terms. */ +/* Copyright (c) 2013 Coraid, Inc. See COPYING for GPL terms. */ /* * aoecmd.c * Filesystem request handling methods
drivers/block/aoe/aoedev.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2012 Coraid, Inc. See COPYING for GPL terms. */ +/* Copyright (c) 2013 Coraid, Inc. See COPYING for GPL terms. */ /* * aoedev.c * AoE device utility functions; maintains device list.
drivers/block/aoe/aoenet.c +1 -1
@@ -1,4 +1,4 @@ -/* Copyright (c) 2012 Coraid, Inc. See COPYING for GPL terms. */ +/* Copyright (c) 2013 Coraid, Inc. See COPYING for GPL terms. */ /* * aoenet.c * Ethernet portion of AoE driver
Signature · 1 line
1.7.1
PATCH 3/3 aoe: update internal version number to v83
In reply to Ed Cashin--- drivers/block/aoe/aoe.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/block/aoe/aoe.h +1 -1
@@ -1,5 +1,5 @@/* Copyright (c) 2013 Coraid, Inc. See COPYING for GPL terms. */ -#define VERSION "81" +#define VERSION "83"#define AOE_MAJOR 152#define DEVICE_NAME "aoe"
Signature · 1 line
1.7.1