iscsi: remove flush timeout

This concept was added very early in the SPDK iSCSI target
development process when there was a high focus on maximizing
throughput on a single iSCSI connection with 512-byte reads.

Realistically, in multi-connection environments focused on
predominantly 4KB (or more) workloads, this concept loses its
effectiveness - it is relatively rare that PDUs from multiple
I/O would coalesce within the default 8us flush timeout period.

There were no users of flush timeout in the SPDK tree - it was
not even documented in the iSCSI configuration file example and
there was no way to modify it at run time.  So leave the change
out of the CHANGELOG.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I08c3e959fb3945dc2c9cb89248305d0c88aa778f

Reviewed-on: https://review.gerrithub.io/395520
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Jim Harris 2018-01-17 22:53:17 -07:00
parent 5f247660d7
commit 7bae25dfcd
4 changed files with 3 additions and 23 deletions

View File

@ -1372,7 +1372,6 @@ static int
spdk_iscsi_conn_execute(struct spdk_iscsi_conn *conn)
{
int rc = 0;
uint64_t tsc;
bool conn_active = false;
if (conn->state == ISCSI_CONN_STATE_EXITED) {
@ -1399,14 +1398,9 @@ spdk_iscsi_conn_execute(struct spdk_iscsi_conn *conn)
conn_active = true;
}
/* If flush timer has expired, flush all PDUs */
tsc = spdk_get_ticks();
if (tsc - conn->last_flush > g_spdk_iscsi.flush_timeout) {
conn->last_flush = tsc;
if (spdk_iscsi_conn_flush_pdus(conn) != 0) {
conn->state = ISCSI_CONN_STATE_EXITING;
goto conn_exit;
}
if (spdk_iscsi_conn_flush_pdus(conn) != 0) {
conn->state = ISCSI_CONN_STATE_EXITING;
goto conn_exit;
}
spdk_iscsi_conn_handle_queued_datain_tasks(conn);

View File

@ -76,7 +76,6 @@
#define DEFAULT_TIMEOUT 60
#define MAX_NOPININTERVAL 60
#define DEFAULT_NOPININTERVAL 30
#define DEFAULT_FLUSH_TIMEOUT 8
/*
* SPDK iSCSI target currently only supports 64KB as the maximum data segment length
@ -271,7 +270,6 @@ struct spdk_iscsi_globals {
int req_discovery_auth;
int req_discovery_auth_mutual;
int discovery_auth_group;
uint64_t flush_timeout;
uint32_t MaxSessions;
uint32_t MaxConnectionsPerSession;

View File

@ -1104,9 +1104,6 @@ spdk_rpc_get_iscsi_global_params(struct spdk_jsonrpc_request *request,
spdk_json_write_name(w, "timeout");
spdk_json_write_int32(w, g_spdk_iscsi.timeout);
spdk_json_write_name(w, "flush_timeout");
spdk_json_write_uint64(w, g_spdk_iscsi.flush_timeout);
spdk_json_write_name(w, "nop_in_interval");
spdk_json_write_int32(w, g_spdk_iscsi.nopininterval);

View File

@ -538,7 +538,6 @@ spdk_iscsi_log_globals(void)
SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "ErrorRecoveryLevel %d\n",
g_spdk_iscsi.ErrorRecoveryLevel);
SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "Timeout %d\n", g_spdk_iscsi.timeout);
SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "FlushTimeout %"PRIu64"\n", g_spdk_iscsi.flush_timeout);
SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "NopInInterval %d\n",
g_spdk_iscsi.nopininterval);
if (g_spdk_iscsi.no_discovery_auth != 0) {
@ -579,7 +578,6 @@ spdk_iscsi_read_parameters_from_config_file(struct spdk_conf_section *sp)
int nopininterval;
int min_conn_per_core = 0;
int conn_idle_interval = 0;
int flush_timeout = 0;
const char *ag_tag;
int ag_tag_i;
@ -685,10 +683,6 @@ spdk_iscsi_read_parameters_from_config_file(struct spdk_conf_section *sp)
if (timeout >= 0) {
g_spdk_iscsi.timeout = timeout;
}
flush_timeout = spdk_conf_section_get_intval(sp, "FlushTimeout");
if (flush_timeout >= 0) {
g_spdk_iscsi.flush_timeout = flush_timeout;
}
nopininterval = spdk_conf_section_get_intval(sp, "NopInInterval");
if (nopininterval >= 0) {
if (nopininterval > MAX_NOPININTERVAL) {
@ -761,7 +755,6 @@ spdk_iscsi_app_read_parameters(void)
g_spdk_iscsi.AllowDuplicateIsid = 0;
g_spdk_iscsi.ErrorRecoveryLevel = DEFAULT_ERRORRECOVERYLEVEL;
g_spdk_iscsi.timeout = DEFAULT_TIMEOUT;
g_spdk_iscsi.flush_timeout = DEFAULT_FLUSH_TIMEOUT;
g_spdk_iscsi.nopininterval = DEFAULT_NOPININTERVAL;
g_spdk_iscsi.no_discovery_auth = 0;
g_spdk_iscsi.req_discovery_auth = 0;
@ -799,8 +792,6 @@ spdk_iscsi_app_read_parameters(void)
*/
g_spdk_iscsi.MaxConnections = g_spdk_iscsi.MaxSessions;
g_spdk_iscsi.flush_timeout *= (spdk_get_ticks_hz() >> 20);
spdk_iscsi_log_globals();
/* portal groups */