From 8f9028deb3513e2841c8f7b4fedeb2a36d63fd6c Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Wed, 24 Jan 2018 15:57:10 +0900 Subject: [PATCH] iscsi/rpc: Fix completeness of dump of iSCSI global params To use JSON dump of iSCSI global parameters as configuration file, at bootup, it must have completeness. This patch fixes the following: - DefaultTime2Wait was not contained. - MinConnectionsPerCore was not contained. - Converting only 0 to "None" for dump is not efficient. Change-Id: I740e6938c216c5c62df6ee70b0ceac40fd0cac00 Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.gerrithub.io/396100 Reviewed-by: Daniel Verkamp Reviewed-by: Jim Harris Tested-by: SPDK Automated Test System --- lib/iscsi/conn.c | 6 ++++++ lib/iscsi/conn.h | 1 + lib/iscsi/iscsi_rpc.c | 13 ++++++++----- lib/iscsi/iscsi_subsystem.c | 3 +++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/iscsi/conn.c b/lib/iscsi/conn.c index 5c6d4456d..552452e7f 100644 --- a/lib/iscsi/conn.c +++ b/lib/iscsi/conn.c @@ -1414,6 +1414,12 @@ spdk_iscsi_conn_set_min_per_core(int count) g_connections_per_lcore = count; } +int +spdk_iscsi_conn_get_min_per_core(void) +{ + return g_connections_per_lcore; +} + static uint32_t spdk_iscsi_conn_allocate_reactor(uint64_t cpumask) { diff --git a/lib/iscsi/conn.h b/lib/iscsi/conn.h index ce8e56d1e..e1f9d1a91 100644 --- a/lib/iscsi/conn.h +++ b/lib/iscsi/conn.h @@ -175,6 +175,7 @@ void spdk_iscsi_conn_logout(struct spdk_iscsi_conn *conn); int spdk_iscsi_drop_conns(struct spdk_iscsi_conn *conn, const char *conn_match, int drop_all); void spdk_iscsi_conn_set_min_per_core(int count); +int spdk_iscsi_conn_get_min_per_core(void); int spdk_iscsi_conn_read_data(struct spdk_iscsi_conn *conn, int len, void *buf); diff --git a/lib/iscsi/iscsi_rpc.c b/lib/iscsi/iscsi_rpc.c index b63cb6308..f4f151d7f 100644 --- a/lib/iscsi/iscsi_rpc.c +++ b/lib/iscsi/iscsi_rpc.c @@ -1093,6 +1093,9 @@ spdk_rpc_get_iscsi_global_params(struct spdk_jsonrpc_request *request, spdk_json_write_name(w, "default_time2wait"); spdk_json_write_uint32(w, g_spdk_iscsi.DefaultTime2Wait); + spdk_json_write_name(w, "default_time2retain"); + spdk_json_write_uint32(w, g_spdk_iscsi.DefaultTime2Retain); + spdk_json_write_name(w, "immediate_data"); spdk_json_write_bool(w, g_spdk_iscsi.ImmediateData); @@ -1120,11 +1123,11 @@ spdk_rpc_get_iscsi_global_params(struct spdk_jsonrpc_request *request, } spdk_json_write_name(w, "discovery_auth_group"); - if (g_spdk_iscsi.discovery_auth_group == 0) { - spdk_json_write_string(w, "none"); - } else { - spdk_json_write_int32(w, g_spdk_iscsi.discovery_auth_group); - } + spdk_json_write_int32(w, g_spdk_iscsi.discovery_auth_group); + + spdk_json_write_name(w, "min_connections_per_core"); + spdk_json_write_int32(w, spdk_iscsi_conn_get_min_per_core()); + spdk_json_write_object_end(w); spdk_jsonrpc_end_result(request, w); diff --git a/lib/iscsi/iscsi_subsystem.c b/lib/iscsi/iscsi_subsystem.c index 0cb05d425..67a8d4cb2 100644 --- a/lib/iscsi/iscsi_subsystem.c +++ b/lib/iscsi/iscsi_subsystem.c @@ -561,6 +561,9 @@ spdk_iscsi_log_globals(void) "DiscoveryAuthGroup AuthGroup%d\n", g_spdk_iscsi.discovery_auth_group); } + + SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "MinConnectionsPerCore%d\n", + spdk_iscsi_conn_get_min_per_core()); } static void