Commit 045c781d authored by Richael Zhuang's avatar Richael Zhuang Committed by Tomasz Zawadzki
Browse files

bdevperf: use SPDK_SEC_TO_USEC for unit conversion



Use SPDK_SEC_TO_USEC instead of '1000 * 1000' or '1000000' for
unit conversion.

Change-Id: Ie9fb016b51ef3346ec640297941408f6c643b9b8
Signed-off-by: default avatarRichael Zhuang <richael.zhuang@arm.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15784


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 723dd06e
Loading
Loading
Loading
Loading
+23 −23
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ static bool g_error_to_exit = false;
static int g_queue_depth = 0;
static uint64_t g_time_in_usec;
static int g_show_performance_real_time = 0;
static uint64_t g_show_performance_period_in_usec = 1000000;
static uint64_t g_show_performance_period_in_usec = SPDK_SEC_TO_USEC;
static uint64_t g_show_performance_period_num = 0;
static uint64_t g_show_performance_ema_period = 0;
static int g_run_rc = 0;
@@ -219,7 +219,7 @@ static struct bdevperf_aggregate_stats g_stats = {.min_latency = (double)UINT64_
static double
get_cma_io_per_second(struct bdevperf_job *job, uint64_t io_time_in_usec)
{
	return (double)job->io_completed * 1000000 / io_time_in_usec;
	return (double)job->io_completed * SPDK_SEC_TO_USEC / io_time_in_usec;
}

static double
@@ -228,7 +228,7 @@ get_ema_io_per_second(struct bdevperf_job *job, uint64_t ema_period)
	double io_completed, io_per_second;

	io_completed = job->io_completed;
	io_per_second = (double)(io_completed - job->prev_io_completed) * 1000000
	io_per_second = (double)(io_completed - job->prev_io_completed) * SPDK_SEC_TO_USEC
			/ g_show_performance_period_in_usec;
	job->prev_io_completed = io_completed;

@@ -273,7 +273,7 @@ performance_dump_job(struct bdevperf_aggregate_stats *stats, struct bdevperf_job

	if (job->io_failed > 0 && !job->reset && !job->continue_on_failure) {
		printf("\r Job: %s ended in about %.2f seconds with error\n",
		       spdk_thread_get_name(job->thread), (double)job->run_time_in_usec / 1000000);
		       spdk_thread_get_name(job->thread), (double)job->run_time_in_usec / SPDK_SEC_TO_USEC);
	}
	if (job->verify) {
		printf("\t Verification LBA range: start 0x%" PRIx64 " length 0x%" PRIx64 "\n",
@@ -304,16 +304,16 @@ performance_dump_job(struct bdevperf_aggregate_stats *stats, struct bdevperf_job

	total_io = job->io_completed + job->io_failed;
	if (total_io != 0) {
		average_latency = (double)latency_info.total / total_io * 1000 * 1000 / tsc_rate;
		average_latency = (double)latency_info.total / total_io * SPDK_SEC_TO_USEC / tsc_rate;
	}
	min_latency = (double)latency_info.min * 1000 * 1000 / tsc_rate;
	max_latency = (double)latency_info.max * 1000 * 1000 / tsc_rate;
	min_latency = (double)latency_info.min * SPDK_SEC_TO_USEC / tsc_rate;
	max_latency = (double)latency_info.max * SPDK_SEC_TO_USEC / tsc_rate;

	failed_per_second = (double)job->io_failed * 1000000 / time_in_usec;
	timeout_per_second = (double)job->io_timeout * 1000000 / time_in_usec;
	failed_per_second = (double)job->io_failed * SPDK_SEC_TO_USEC / time_in_usec;
	timeout_per_second = (double)job->io_timeout * SPDK_SEC_TO_USEC / time_in_usec;

	printf("\t %-20s: %10.2f %10.2f %10.2f",
	       job->name, (float)time_in_usec / 1000000, io_per_second, mb_per_second);
	       job->name, (float)time_in_usec / SPDK_SEC_TO_USEC, io_per_second, mb_per_second);
	printf(" %10.2f %8.2f",
	       failed_per_second, timeout_per_second);
	printf(" %10.2f %10.2f %10.2f\n",
@@ -474,7 +474,7 @@ check_cutoff(void *ctx, uint64_t start, uint64_t end, uint64_t count,
	tsc_rate = spdk_get_ticks_hz();
	so_far_pct = (double)so_far / total;
	while (so_far_pct >= **cutoff && **cutoff > 0) {
		printf("%9.5f%% : %9.3fus\n", **cutoff * 100, (double)end * 1000 * 1000 / tsc_rate);
		printf("%9.5f%% : %9.3fus\n", **cutoff * 100, (double)end * SPDK_SEC_TO_USEC / tsc_rate);
		(*cutoff)++;
	}
}
@@ -493,8 +493,8 @@ print_bucket(void *ctx, uint64_t start, uint64_t end, uint64_t count,
	tsc_rate = spdk_get_ticks_hz();
	so_far_pct = (double)so_far * 100 / total;
	printf("%9.3f - %9.3f: %9.4f%%  (%9ju)\n",
	       (double)start * 1000 * 1000 / tsc_rate,
	       (double)end * 1000 * 1000 / tsc_rate,
	       (double)start * SPDK_SEC_TO_USEC / tsc_rate,
	       (double)end * SPDK_SEC_TO_USEC / tsc_rate,
	       so_far_pct, count);
}

@@ -522,10 +522,10 @@ bdevperf_test_done(void *ctx)

	if (g_shutdown) {
		g_shutdown_tsc = spdk_get_ticks() - g_start_tsc;
		time_in_usec = g_shutdown_tsc * 1000000 / spdk_get_ticks_hz();
		time_in_usec = g_shutdown_tsc * SPDK_SEC_TO_USEC / spdk_get_ticks_hz();
		g_time_in_usec = (g_time_in_usec > time_in_usec) ? time_in_usec : g_time_in_usec;
		printf("Received shutdown signal, test time was about %.6f seconds\n",
		       (double)g_time_in_usec / 1000000);
		       (double)g_time_in_usec / SPDK_SEC_TO_USEC);
	}

	printf("\n%*s\n", 107, "Latency(us)");
@@ -544,7 +544,7 @@ bdevperf_test_done(void *ctx)
	       g_stats.total_failed_per_second, g_stats.total_timeout_per_second);

	if (g_stats.total_io_completed != 0) {
		average_latency = ((double)g_stats.total_tsc / g_stats.total_io_completed) * 1000 * 1000 /
		average_latency = ((double)g_stats.total_tsc / g_stats.total_io_completed) * SPDK_SEC_TO_USEC /
				  spdk_get_ticks_hz();
	}
	printf(" %10.2f %10.2f %10.2f\n", average_latency, g_stats.min_latency, g_stats.max_latency);
@@ -636,7 +636,7 @@ bdevperf_end_task(struct bdevperf_task *task)
	if (job->is_draining) {
		if (job->current_queue_depth == 0) {
			end_tsc = spdk_get_ticks() - g_start_tsc;
			job->run_time_in_usec = end_tsc * 1000000 / spdk_get_ticks_hz();
			job->run_time_in_usec = end_tsc * SPDK_SEC_TO_USEC / spdk_get_ticks_hz();

			/* keep histogram info before channel is destroyed */
			spdk_bdev_channel_get_histogram(job->bdev, job->ch, bdevperf_channel_get_histogram_cb,
@@ -1161,7 +1161,7 @@ reset_cb(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
	spdk_bdev_free_io(bdev_io);

	job->reset_timer = SPDK_POLLER_REGISTER(reset_job, job,
						10 * 1000000);
						10 * SPDK_SEC_TO_USEC);
}

static int
@@ -1224,7 +1224,7 @@ bdevperf_job_run(void *ctx)
	job->run_timer = SPDK_POLLER_REGISTER(bdevperf_job_drain, job, g_time_in_usec);
	if (job->reset) {
		job->reset_timer = SPDK_POLLER_REGISTER(reset_job, job,
							10 * 1000000);
							10 * SPDK_SEC_TO_USEC);
	}

	spdk_bdev_set_timeout(job->bdev_desc, g_timeout_in_sec, bdevperf_timeout_cb, job);
@@ -1248,7 +1248,7 @@ _performance_dump_done(void *ctx)
	printf(" %10.2f %8.2f",
	       stats->total_failed_per_second, stats->total_timeout_per_second);

	average_latency = ((double)stats->total_tsc / stats->total_io_completed) * 1000 * 1000 /
	average_latency = ((double)stats->total_tsc / stats->total_io_completed) * SPDK_SEC_TO_USEC /
			  spdk_get_ticks_hz();
	printf(" %10.2f %10.2f %10.2f\n", average_latency, stats->min_latency, stats->max_latency);
	printf("\n");
@@ -1319,7 +1319,7 @@ bdevperf_test(void)
{
	struct bdevperf_job *job;

	printf("Running I/O for %" PRIu64 " seconds...\n", g_time_in_usec / 1000000);
	printf("Running I/O for %" PRIu64 " seconds...\n", g_time_in_usec / (uint64_t)SPDK_SEC_TO_USEC);
	fflush(stdout);

	/* Start a timer to dump performance numbers */
@@ -2320,7 +2320,7 @@ bdevperf_parse_arg(int ch, char *arg)
			break;
		case 'S':
			g_show_performance_real_time = 1;
			g_show_performance_period_in_usec = tmp * 1000000;
			g_show_performance_period_in_usec = tmp * SPDK_SEC_TO_USEC;
			break;
		default:
			return -EINVAL;
@@ -2376,7 +2376,7 @@ verify_test_params(struct spdk_app_opts *opts)
	if (g_time_in_sec <= 0) {
		goto out;
	}
	g_time_in_usec = g_time_in_sec * 1000000LL;
	g_time_in_usec = g_time_in_sec * SPDK_SEC_TO_USEC;

	if (g_timeout_in_sec < 0) {
		goto out;