Commit 7df620d8 authored by Ed L. Cashin's avatar Ed L. Cashin Committed by Linus Torvalds

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: default avatarEd L. Cashin <ecashin@coraid.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6b9699bb
...@@ -18,6 +18,11 @@ static int aoe_deadsecs = 60 * 3; ...@@ -18,6 +18,11 @@ static int aoe_deadsecs = 60 * 3;
module_param(aoe_deadsecs, int, 0644); module_param(aoe_deadsecs, int, 0644);
MODULE_PARM_DESC(aoe_deadsecs, "After aoe_deadsecs seconds, give up and fail dev."); MODULE_PARM_DESC(aoe_deadsecs, "After aoe_deadsecs seconds, give up and fail dev.");
static int aoe_maxout = 16;
module_param(aoe_maxout, int, 0644);
MODULE_PARM_DESC(aoe_maxout,
"Only aoe_maxout outstanding packets for every MAC on eX.Y.");
static struct sk_buff * static struct sk_buff *
new_skb(ulong len) new_skb(ulong len)
{ {
...@@ -984,7 +989,6 @@ aoecmd_cfg_rsp(struct sk_buff *skb) ...@@ -984,7 +989,6 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
struct aoeif *ifp; struct aoeif *ifp;
ulong flags, sysminor, aoemajor; ulong flags, sysminor, aoemajor;
struct sk_buff *sl; struct sk_buff *sl;
enum { MAXFRAMES = 16 };
u16 n; u16 n;
h = (struct aoe_hdr *) skb_mac_header(skb); h = (struct aoe_hdr *) skb_mac_header(skb);
...@@ -1009,8 +1013,8 @@ aoecmd_cfg_rsp(struct sk_buff *skb) ...@@ -1009,8 +1013,8 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
} }
n = be16_to_cpu(ch->bufcnt); n = be16_to_cpu(ch->bufcnt);
if (n > MAXFRAMES) /* keep it reasonable */ if (n > aoe_maxout) /* keep it reasonable */
n = MAXFRAMES; n = aoe_maxout;
d = aoedev_by_sysminor_m(sysminor); d = aoedev_by_sysminor_m(sysminor);
if (d == NULL) { if (d == NULL) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment