From daf08e3b5597e79278d8366b9b11caa78aeff8d5 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Tue, 14 Apr 2020 13:19:24 -0700 Subject: [PATCH] bdevperf: Print each job's results separately As we move to more complex job definitions, it will make more sense to print the stats for each job separately, rather than grouping by reactor. Signed-off-by: Ben Walker Change-Id: I1a94c36a5d272ae406b0b201dc05ec020ab651a0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1848 Tested-by: SPDK CI Jenkins Reviewed-by: Paul Luse Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris Reviewed-by: Aleksey Marchuk --- test/bdev/bdevperf/bdevperf.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/test/bdev/bdevperf/bdevperf.c b/test/bdev/bdevperf/bdevperf.c index 17a2faba9..03e26e221 100644 --- a/test/bdev/bdevperf/bdevperf.c +++ b/test/bdev/bdevperf/bdevperf.c @@ -913,6 +913,26 @@ _performance_dump_done(struct spdk_io_channel_iter *i, int status) free(ctx); } +static void +_performance_dump_job(struct perf_dump_ctx *ctx, struct bdevperf_job *job) +{ + double io_per_second, mb_per_second; + + printf("\r Thread name: %s\n", spdk_thread_get_name(job->reactor->thread)); + printf("\r Core Mask: 0x%s\n", spdk_cpuset_fmt(spdk_thread_get_cpumask(job->reactor->thread))); + + if (ctx->ema_period == 0) { + io_per_second = get_cma_io_per_second(job, ctx->io_time_in_usec); + } else { + io_per_second = get_ema_io_per_second(job, ctx->ema_period); + } + mb_per_second = io_per_second * g_io_size / (1024 * 1024); + printf("\r %-20s: %10.2f IOPS %10.2f MiB/s\n", + job->name, io_per_second, mb_per_second); + ctx->total_io_per_second += io_per_second; + ctx->total_mb_per_second += mb_per_second; +} + static void _performance_dump(struct spdk_io_channel_iter *i) { @@ -920,7 +940,6 @@ _performance_dump(struct spdk_io_channel_iter *i) struct spdk_io_channel *ch; struct bdevperf_reactor *reactor; struct bdevperf_job *job; - double io_per_second, mb_per_second; ctx = spdk_io_channel_iter_get_ctx(i); ch = spdk_io_channel_iter_get_channel(i); @@ -930,20 +949,8 @@ _performance_dump(struct spdk_io_channel_iter *i) goto exit; } - printf("\r Thread name: %s\n", spdk_thread_get_name(spdk_get_thread())); - printf("\r Logical core: %u\n", reactor->lcore); - TAILQ_FOREACH(job, &reactor->jobs, link) { - if (ctx->ema_period == 0) { - io_per_second = get_cma_io_per_second(job, ctx->io_time_in_usec); - } else { - io_per_second = get_ema_io_per_second(job, ctx->ema_period); - } - mb_per_second = io_per_second * g_io_size / (1024 * 1024); - printf("\r %-20s: %10.2f IOPS %10.2f MiB/s\n", - job->name, io_per_second, mb_per_second); - ctx->total_io_per_second += io_per_second; - ctx->total_mb_per_second += mb_per_second; + _performance_dump_job(ctx, job); } fflush(stdout);