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:
parent
5f247660d7
commit
7bae25dfcd
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user