bdevperf: Rename end_job to bdevperf_job_drain

This function kicks off the draining process, so name it appropriately.

Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Change-Id: Ic447aaa01612f6355ff4404d476419b55a3d0cff
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1386
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Ben Walker 2020-03-19 15:47:03 -07:00 committed by Tomasz Zawadzki
parent 3cd14ee3bd
commit 4b8b624068

View File

@ -351,15 +351,19 @@ bdevperf_queue_io_wait_with_cb(struct bdevperf_task *task, spdk_bdev_io_wait_cb
spdk_bdev_queue_io_wait(job->bdev, job->ch, &task->bdev_io_wait); spdk_bdev_queue_io_wait(job->bdev, job->ch, &task->bdev_io_wait);
} }
static void static int
_end_job(struct bdevperf_job *job) bdevperf_job_drain(void *ctx)
{ {
struct bdevperf_job *job = ctx;
spdk_poller_unregister(&job->run_timer); spdk_poller_unregister(&job->run_timer);
if (g_reset) { if (g_reset) {
spdk_poller_unregister(&job->reset_timer); spdk_poller_unregister(&job->reset_timer);
} }
job->is_draining = true; job->is_draining = true;
return -1;
} }
static void static void
@ -376,7 +380,7 @@ bdevperf_complete(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
if (!success) { if (!success) {
if (!g_reset && !g_continue_on_failure) { if (!g_reset && !g_continue_on_failure) {
_end_job(job); bdevperf_job_drain(job);
g_run_rc = -1; g_run_rc = -1;
printf("task offset: %lu on job bdev=%s fails\n", printf("task offset: %lu on job bdev=%s fails\n",
task->offset_blocks, job->name); task->offset_blocks, job->name);
@ -392,7 +396,7 @@ bdevperf_complete(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
job->io_size_blocks, md_check)) { job->io_size_blocks, md_check)) {
printf("Buffer mismatch! Target: %s Disk Offset: %lu\n", job->name, task->offset_blocks); printf("Buffer mismatch! Target: %s Disk Offset: %lu\n", job->name, task->offset_blocks);
printf(" First dword expected 0x%x got 0x%x\n", *(int *)task->buf, *(int *)iovs[0].iov_base); printf(" First dword expected 0x%x got 0x%x\n", *(int *)task->buf, *(int *)iovs[0].iov_base);
_end_job(job); bdevperf_job_drain(job);
g_run_rc = -1; g_run_rc = -1;
} }
} }
@ -450,7 +454,7 @@ bdevperf_verify_submit_read(void *cb_arg)
bdevperf_queue_io_wait_with_cb(task, bdevperf_verify_submit_read); bdevperf_queue_io_wait_with_cb(task, bdevperf_verify_submit_read);
} else if (rc != 0) { } else if (rc != 0) {
printf("Failed to submit read: %d\n", rc); printf("Failed to submit read: %d\n", rc);
_end_job(job); bdevperf_job_drain(job);
g_run_rc = rc; g_run_rc = rc;
} }
} }
@ -596,7 +600,7 @@ bdevperf_submit_task(void *arg)
return; return;
} else if (rc != 0) { } else if (rc != 0) {
printf("Failed to submit bdev_io: %d\n", rc); printf("Failed to submit bdev_io: %d\n", rc);
_end_job(job); bdevperf_job_drain(job);
g_run_rc = rc; g_run_rc = rc;
return; return;
} }
@ -613,7 +617,7 @@ bdevperf_zcopy_get_buf_complete(struct spdk_bdev_io *bdev_io, bool success, void
int iovcnt; int iovcnt;
if (!success) { if (!success) {
_end_job(job); bdevperf_job_drain(job);
g_run_rc = -1; g_run_rc = -1;
return; return;
} }
@ -753,16 +757,6 @@ bdevperf_submit_io(struct bdevperf_job *job, int queue_depth)
} }
} }
static int
end_job(void *arg)
{
struct bdevperf_job *job = arg;
_end_job(job);
return -1;
}
static int reset_job(void *arg); static int reset_job(void *arg);
static void static void
@ -773,7 +767,7 @@ reset_cb(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
if (!success) { if (!success) {
printf("Reset blockdev=%s failed\n", spdk_bdev_get_name(job->bdev)); printf("Reset blockdev=%s failed\n", spdk_bdev_get_name(job->bdev));
_end_job(job); bdevperf_job_drain(job);
g_run_rc = -1; g_run_rc = -1;
} }
@ -799,7 +793,7 @@ reset_job(void *arg)
reset_cb, task); reset_cb, task);
if (rc) { if (rc) {
printf("Reset failed: %d\n", rc); printf("Reset failed: %d\n", rc);
_end_job(job); bdevperf_job_drain(job);
g_run_rc = -1; g_run_rc = -1;
} }
@ -830,7 +824,7 @@ bdevperf_submit_on_reactor(struct spdk_io_channel_iter *i)
} }
/* Start a timer to stop this I/O chain when the run is over */ /* Start a timer to stop this I/O chain when the run is over */
job->run_timer = spdk_poller_register(end_job, job, job->run_timer = spdk_poller_register(bdevperf_job_drain, job,
g_time_in_usec); g_time_in_usec);
if (g_reset) { if (g_reset) {
job->reset_timer = spdk_poller_register(reset_job, job, job->reset_timer = spdk_poller_register(reset_job, job,
@ -1088,7 +1082,7 @@ bdevperf_job_gone(void *arg)
assert(spdk_io_channel_get_thread(spdk_io_channel_from_ctx(job->reactor)) == assert(spdk_io_channel_get_thread(spdk_io_channel_from_ctx(job->reactor)) ==
spdk_get_thread()); spdk_get_thread());
_end_job(job); bdevperf_job_drain(job);
} }
static int static int
@ -1425,7 +1419,7 @@ bdevperf_stop_io_on_reactor(struct spdk_io_channel_iter *i)
/* Stop I/O for each block device. */ /* Stop I/O for each block device. */
TAILQ_FOREACH(job, &reactor->jobs, link) { TAILQ_FOREACH(job, &reactor->jobs, link) {
end_job(job); bdevperf_job_drain(job);
} }
spdk_for_each_channel_continue(i, 0); spdk_for_each_channel_continue(i, 0);