diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2014-01-10 02:06:59 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-06 11:34:11 -0800 |
commit | e00d98a6df6f455e790c3cef4e9e78926d6f6ba7 (patch) | |
tree | 32753962289bc3ec3a94d93ee1dadf25c26c8d1b /drivers/devfreq | |
parent | f91c20513353a088257f2b1264d497b3dcfe81de (diff) |
iscsi-target: Pre-allocate more tags to avoid ack starvation
commit 4a4caa29f1abcb14377e05d57c0793d338fb945d upstream.
This patch addresses an traditional iscsi-target fabric ack starvation
issue where iscsit_allocate_cmd() -> percpu_ida_alloc_state() ends up
hitting slow path percpu-ida code, because iscsit_ack_from_expstatsn()
is expected to free ack'ed tags after tag allocation.
This is done to take into account the tags waiting to be acknowledged
and released in iscsit_ack_from_expstatsn(), but who's number are not
directly limited by the CmdSN Window queue_depth being enforced by
the target.
So that said, this patch bumps up the pre-allocated number of
per session tags to:
(max(queue_depth, ISCSIT_MIN_TAGS) * 2) + ISCSIT_EXTRA_TAGS
for good measure to avoid the percpu_ida_alloc_state() slow path.
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/devfreq')
0 files changed, 0 insertions, 0 deletions