aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd L. Cashin <ecashin@coraid.com>2008-02-08 07:20:07 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-08 12:22:32 -0500
commit7df620d852642d424afc9777fe57880e02c92832 (patch)
tree9bd0b23534c02f1a8adb3cc7972f4976a7148cb3
parent6b9699bbd24e82d2ec3bb5a43100099a936ded04 (diff)
aoe: add module parameter for users who need more outstanding I/O
An AoE target provides an estimate of the number of outstanding commands that the AoE initiator can send before getting a response. The aoe_maxout parameter provides a way to set an even lower limit. It will not allow a user to use more outstanding commands than the target permits. If a user discovers a problem with a large setting, this parameter provides a way for us to work with them to debug the problem. We expect to improve the dynamic window sizing algorithm and drop this parameter. For the time being, it is a debugging aid. Signed-off-by: Ed L. Cashin <ecashin@coraid.com> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/block/aoe/aoecmd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 7a9618313ea3..e92d885803a3 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -18,6 +18,11 @@ static int aoe_deadsecs = 60 * 3;
18module_param(aoe_deadsecs, int, 0644); 18module_param(aoe_deadsecs, int, 0644);
19MODULE_PARM_DESC(aoe_deadsecs, "After aoe_deadsecs seconds, give up and fail dev."); 19MODULE_PARM_DESC(aoe_deadsecs, "After aoe_deadsecs seconds, give up and fail dev.");
20 20
21static int aoe_maxout = 16;
22module_param(aoe_maxout, int, 0644);
23MODULE_PARM_DESC(aoe_maxout,
24 "Only aoe_maxout outstanding packets for every MAC on eX.Y.");
25
21static struct sk_buff * 26static struct sk_buff *
22new_skb(ulong len) 27new_skb(ulong len)
23{ 28{
@@ -984,7 +989,6 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
984 struct aoeif *ifp; 989 struct aoeif *ifp;
985 ulong flags, sysminor, aoemajor; 990 ulong flags, sysminor, aoemajor;
986 struct sk_buff *sl; 991 struct sk_buff *sl;
987 enum { MAXFRAMES = 16 };
988 u16 n; 992 u16 n;
989 993
990 h = (struct aoe_hdr *) skb_mac_header(skb); 994 h = (struct aoe_hdr *) skb_mac_header(skb);
@@ -1009,8 +1013,8 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
1009 } 1013 }
1010 1014
1011 n = be16_to_cpu(ch->bufcnt); 1015 n = be16_to_cpu(ch->bufcnt);
1012 if (n > MAXFRAMES) /* keep it reasonable */ 1016 if (n > aoe_maxout) /* keep it reasonable */
1013 n = MAXFRAMES; 1017 n = aoe_maxout;
1014 1018
1015 d = aoedev_by_sysminor_m(sysminor); 1019 d = aoedev_by_sysminor_m(sysminor);
1016 if (d == NULL) { 1020 if (d == NULL) {