Commit 9226dcce authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

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: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I8816a88be13e794f39ded3ff12e9a76e40c8282a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/514


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
parent 00f1443e
Loading
Loading
Loading
Loading
+39 −39
Original line number Diff line number Diff line
@@ -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)
{