aoe: performance enhancements through v83
Subsystems (2)
PATCH 3/3 aoe: update internal version number to v83
In reply to [email protected]--- 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
PATCH 2/3 aoe: update copyright date
In reply to [email protected]--- 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 1/3 aoe: perform I/O completions in parallel
In reply to [email protected]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 | 153 ++++++++++++++++++++++++++++++++++++-------- drivers/block/aoe/aoedev.c | 1 - drivers/block/aoe/aoenet.c | 5 +- 4 files changed, 135 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 +127 -26
227 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
cover aoe: performance enhancements through v83
This patch series applies to today's linux-next/akpm, commit cbbc4a736dfca9a1ade0b13219d98d12601c1c06.
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 | 155 ++++++++++++++++++++++++++++++++++++-------- drivers/block/aoe/aoedev.c | 3 +- drivers/block/aoe/aoenet.c | 7 +- 4 files changed, 140 insertions(+), 36 deletions(-)
Re: [PATCH 1/3] aoe: perform I/O completions in parallel
In reply to [email protected]Quoted 12 lines · On Tue, 2 Jul 2013 14:23:51 -0700 [email protected] wrote:
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/aoecmd.c module_param(aoe_maxout, int, 0644); · line 42
Quoted 10 lines
drivers/block/aoe/aoecmd.c +5
-2@@ -35,14 +35,24 @@ module_param(aoe_maxout, int, 0644);MODULE_PARM_DESC (aoe_maxout,"Only aoe_maxout outstanding packets for every MAC on eX.Y." ); -static wait_queue_head_t ktiowq; -static struct ktstate kts; +/* The number of online cpus in the system, +* this dictates the number of ktio threads +* which will be spawned. +*/ +static int ncpus;
I can see that doing it this way simplifies the code rather a lot, but of course CPU hotplug can and will make ncpus grossly different from the current num_online_cpus.
I suggest it's worth adding a comment here mentioning this, and explaining why and how that's OK. If it indeed is OK ;)
Also, these patches were sent as being from [email protected]. I rewrote that to [email protected] which is what I suspect you intended. You can do this override yourself by putting a From: line right at the top of the changelog.
Re: [PATCH 1/3] aoe: perform I/O completions in parallel
Quoted 2 lines · Andrew Morton
I suggest it's worth adding a comment here mentioning this, and explaining why and how that's OK. If it indeed is OK ;)
OK, thanks. The resubmission is coming now.
Quoted 4 lines
Also, these patches were sent as being from [email protected]. I rewrote that to [email protected] which is what I suspect you intended. You can do this override yourself by putting a From: line right at the top of the changelog.
Sorry. I was having email sending troubles, and my workaround had flaws. I'll try to remember the from-in-changelog trick, thanks.
Signature · 2 lines
Ed Cashin [email protected]