perf: Support setting IPv4 type of service (TOS)
New option --transport-tos to allow setting TOS value for RDMA transport. Signed-off-by: Michael Haeuptle <michael.haeuptle@hpe.com> Change-Id: I7747fac5c6641dfd18356314e8209bf5f3f35b7e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15909 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
7706450f2a
commit
031ba90fe1
@ -254,6 +254,8 @@ static uint32_t g_io_queue_size = UINT16_MAX;
|
|||||||
static uint32_t g_sock_zcopy_threshold;
|
static uint32_t g_sock_zcopy_threshold;
|
||||||
static char *g_sock_threshold_impl;
|
static char *g_sock_threshold_impl;
|
||||||
|
|
||||||
|
static uint8_t g_transport_tos = 0;
|
||||||
|
|
||||||
/* When user specifies -Q, some error messages are rate limited. When rate
|
/* When user specifies -Q, some error messages are rate limited. When rate
|
||||||
* limited, we only print the error message every g_quiet_count times the
|
* limited, we only print the error message every g_quiet_count times the
|
||||||
* error occurs.
|
* error occurs.
|
||||||
@ -1855,6 +1857,7 @@ usage(char *program_name)
|
|||||||
printf("\t[--psk-identity <val> Default PSK ID, e.g. psk.spdk.io (only applies when sock_impl == ssl)]\n");
|
printf("\t[--psk-identity <val> Default PSK ID, e.g. psk.spdk.io (only applies when sock_impl == ssl)]\n");
|
||||||
printf("\t[--zerocopy-threshold <val> data is sent with MSG_ZEROCOPY if size is greater than this val. Default: 0 to disable it]\n");
|
printf("\t[--zerocopy-threshold <val> data is sent with MSG_ZEROCOPY if size is greater than this val. Default: 0 to disable it]\n");
|
||||||
printf("\t[--zerocopy-threshold-sock-impl <impl> specify the sock implementation to set zerocopy_threshold]\n");
|
printf("\t[--zerocopy-threshold-sock-impl <impl> specify the sock implementation to set zerocopy_threshold]\n");
|
||||||
|
printf("\t[--transport-tos <val> specify the type of service for RDMA transport. Default: 0 (disabled)]\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -2363,6 +2366,8 @@ static const struct option g_perf_cmdline_opts[] = {
|
|||||||
{"zerocopy-threshold", required_argument, NULL, PERF_ZEROCOPY_THRESHOLD},
|
{"zerocopy-threshold", required_argument, NULL, PERF_ZEROCOPY_THRESHOLD},
|
||||||
#define PERF_SOCK_IMPL 266
|
#define PERF_SOCK_IMPL 266
|
||||||
{"zerocopy-threshold-sock-impl", required_argument, NULL, PERF_SOCK_IMPL},
|
{"zerocopy-threshold-sock-impl", required_argument, NULL, PERF_SOCK_IMPL},
|
||||||
|
#define PERF_TRANSPORT_TOS 267
|
||||||
|
{"transport-tos", required_argument, NULL, PERF_TRANSPORT_TOS},
|
||||||
/* Should be the last element */
|
/* Should be the last element */
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
@ -2606,6 +2611,14 @@ parse_args(int argc, char **argv, struct spdk_env_opts *env_opts)
|
|||||||
case PERF_SOCK_IMPL:
|
case PERF_SOCK_IMPL:
|
||||||
g_sock_threshold_impl = optarg;
|
g_sock_threshold_impl = optarg;
|
||||||
break;
|
break;
|
||||||
|
case PERF_TRANSPORT_TOS:
|
||||||
|
val = spdk_strtol(optarg, 10);
|
||||||
|
if (val < 0) {
|
||||||
|
fprintf(stderr, "Invalid TOS value\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
g_transport_tos = val;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
usage(argv[0]);
|
usage(argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
@ -2790,6 +2803,8 @@ probe_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid,
|
|||||||
opts->keep_alive_timeout_ms = g_keep_alive_timeout_in_ms;
|
opts->keep_alive_timeout_ms = g_keep_alive_timeout_in_ms;
|
||||||
memcpy(opts->hostnqn, trid_entry->hostnqn, sizeof(opts->hostnqn));
|
memcpy(opts->hostnqn, trid_entry->hostnqn, sizeof(opts->hostnqn));
|
||||||
|
|
||||||
|
opts->transport_tos = g_transport_tos;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user