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 <benjamin.walker@intel.com>
Change-Id: I1a94c36a5d272ae406b0b201dc05ec020ab651a0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1848
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
Ben Walker 2020-04-14 13:19:24 -07:00 committed by Tomasz Zawadzki
parent 5eb39c80ad
commit daf08e3b55

View File

@ -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);