bdevperf: Put RPC main handler next to command line main handler

Put rpc_perform_tests() next to bdevperf_run(). This will improve
readability a little.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I8816a88be13e794f39ded3ff12e9a76e40c8282a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/514
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
This commit is contained in:
Shuhei Matsumoto 2020-02-05 03:06:23 -05:00 committed by Tomasz Zawadzki
parent 00f1443eb7
commit 9226dcce43

View File

@ -1182,45 +1182,6 @@ bdevperf_run(void *arg1)
spdk_for_each_thread(_bdevperf_init_thread, NULL, _bdevperf_init_thread_done);
}
static void
bdevperf_stop_io_on_group(struct spdk_io_channel_iter *i)
{
struct spdk_io_channel *ch;
struct io_target_group *group;
struct io_target *target;
ch = spdk_io_channel_iter_get_channel(i);
group = spdk_io_channel_get_ctx(ch);
/* Stop I/O for each block device. */
TAILQ_FOREACH(target, &group->targets, link) {
end_target(target);
}
spdk_for_each_channel_continue(i, 0);
}
static void
spdk_bdevperf_shutdown_cb(void)
{
g_shutdown = true;
if (TAILQ_EMPTY(&g_bdevperf.groups)) {
spdk_app_stop(0);
return;
}
if (g_target_count == 0) {
bdevperf_test_done();
return;
}
g_shutdown_tsc = spdk_get_ticks() - g_shutdown_tsc;
/* Send events to stop all I/O on each target group */
spdk_for_each_channel(&g_bdevperf, bdevperf_stop_io_on_group, NULL, NULL);
}
static void
rpc_perform_tests_cb(void)
{
@ -1270,6 +1231,45 @@ rpc_perform_tests(struct spdk_jsonrpc_request *request, const struct spdk_json_v
}
SPDK_RPC_REGISTER("perform_tests", rpc_perform_tests, SPDK_RPC_RUNTIME)
static void
bdevperf_stop_io_on_group(struct spdk_io_channel_iter *i)
{
struct spdk_io_channel *ch;
struct io_target_group *group;
struct io_target *target;
ch = spdk_io_channel_iter_get_channel(i);
group = spdk_io_channel_get_ctx(ch);
/* Stop I/O for each block device. */
TAILQ_FOREACH(target, &group->targets, link) {
end_target(target);
}
spdk_for_each_channel_continue(i, 0);
}
static void
spdk_bdevperf_shutdown_cb(void)
{
g_shutdown = true;
if (TAILQ_EMPTY(&g_bdevperf.groups)) {
spdk_app_stop(0);
return;
}
if (g_target_count == 0) {
bdevperf_test_done();
return;
}
g_shutdown_tsc = spdk_get_ticks() - g_shutdown_tsc;
/* Send events to stop all I/O on each target group */
spdk_for_each_channel(&g_bdevperf, bdevperf_stop_io_on_group, NULL, NULL);
}
static int
bdevperf_parse_arg(int ch, char *arg)
{