Commit 9e20ae33 authored by Nicholas Bellinger's avatar Nicholas Bellinger

iscsi-target; Allow an extra tag_num / 2 number of percpu_ida tags

This patch bumps the default number of tags allocated per session by
iscsi-target via transport_alloc_session_tags() -> percpu_ida_init()
by another (tag_num / 2).

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.

Using a larger value here is also useful to prevent percpu_ida_alloc()
from having to steal tags from other CPUs when no tags are available
on the local CPU, while waiting for unacknowledged tags to be released.
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent f56cbbb4
...@@ -1192,7 +1192,7 @@ int iscsi_target_locate_portal( ...@@ -1192,7 +1192,7 @@ int iscsi_target_locate_portal(
*/ */
alloc_tags: alloc_tags:
tag_num = max_t(u32, ISCSIT_MIN_TAGS, queue_depth); tag_num = max_t(u32, ISCSIT_MIN_TAGS, queue_depth);
tag_num += ISCSIT_EXTRA_TAGS; tag_num += (tag_num / 2) + ISCSIT_EXTRA_TAGS;
tag_size = sizeof(struct iscsi_cmd) + conn->conn_transport->priv_size; tag_size = sizeof(struct iscsi_cmd) + conn->conn_transport->priv_size;
ret = transport_alloc_session_tags(sess->se_sess, tag_num, tag_size); ret = transport_alloc_session_tags(sess->se_sess, tag_num, tag_size);
......
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