perf: add io check for aio device
If no aio device exist, then we can use 'exit(1)' to exit. Also, update the same error check with 'exit(1)' for io_uring path. Fix issue with 2893 Signed-off-by: Yifan Bian <yifan.bian@intel.com> Change-Id: Iade74fba4588b109ce77af76ac998bb05b842ef3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16652 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Xiaodong Liu <xiaodong.liu@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
56f238488e
commit
f21a34ac26
@ -503,8 +503,9 @@ uring_check_io(struct ns_worker_ctx *ns_ctx)
|
||||
assert(ns_ctx->u.uring.cqes[i] != NULL);
|
||||
task = (struct perf_task *)ns_ctx->u.uring.cqes[i]->user_data;
|
||||
if (ns_ctx->u.uring.cqes[i]->res != (int)task->iovs[0].iov_len) {
|
||||
fprintf(stderr, "cqe[i]->status=%d\n", ns_ctx->u.uring.cqes[i]->res);
|
||||
exit(0);
|
||||
fprintf(stderr, "cqe->status=%d, iov_len=%d\n", ns_ctx->u.uring.cqes[i]->res,
|
||||
(int)task->iovs[0].iov_len);
|
||||
exit(1);
|
||||
}
|
||||
io_uring_cqe_seen(&ns_ctx->u.uring.ring, ns_ctx->u.uring.cqes[i]);
|
||||
task_complete(task);
|
||||
@ -615,6 +616,7 @@ aio_check_io(struct ns_worker_ctx *ns_ctx)
|
||||
{
|
||||
int count, i;
|
||||
struct timespec timeout;
|
||||
struct perf_task *task;
|
||||
|
||||
timeout.tv_sec = 0;
|
||||
timeout.tv_nsec = 0;
|
||||
@ -626,6 +628,12 @@ aio_check_io(struct ns_worker_ctx *ns_ctx)
|
||||
}
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
task = (struct perf_task *)ns_ctx->u.aio.events[i].data;
|
||||
if (ns_ctx->u.aio.events[i].res != (uint64_t)task->iovs[0].iov_len) {
|
||||
fprintf(stderr, "event->res=%lu, iov_len=%lu\n", ns_ctx->u.aio.events[i].res,
|
||||
(uint64_t)task->iovs[0].iov_len);
|
||||
exit(1);
|
||||
}
|
||||
task_complete(ns_ctx->u.aio.events[i].data);
|
||||
}
|
||||
return count;
|
||||
|
Loading…
Reference in New Issue
Block a user