aboutsummaryrefslogtreecommitdiffstats
path: root/lib/percpu_ida.c
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2014-01-10 02:06:59 +0000
committerNicholas Bellinger <nab@linux-iscsi.org>2014-01-19 10:59:05 +0000
commit4a4caa29f1abcb14377e05d57c0793d338fb945d (patch)
tree9aa82f238da7f6dc93d543aa76616bafdfbf552b /lib/percpu_ida.c
parentqla2xxx: Configure NPIV fc_vport via tcm_qla2xxx_npiv_make_lport (diff)
downloadlinux-dev-4a4caa29f1abcb14377e05d57c0793d338fb945d.tar.xz
linux-dev-4a4caa29f1abcb14377e05d57c0793d338fb945d.zip
iscsi-target: Pre-allocate more tags to avoid ack starvation
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. Cc: <stable@vger.kernel.org> #3.12+ Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'lib/percpu_ida.c')
0 files changed, 0 insertions, 0 deletions