Fix test cases
- Don't use polled IO for the io_uring-test, that'll fail if the fs/device doesn't suppor it - copy read-in was broken for io_uring-cp Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
@@ -177,23 +177,26 @@ int main(int argc, char *argv[])
|
|||||||
writes = reads = 0;
|
writes = reads = 0;
|
||||||
write_left = read_left;
|
write_left = read_left;
|
||||||
while (read_left || write_left) {
|
while (read_left || write_left) {
|
||||||
off_t this_size = read_left;
|
|
||||||
|
|
||||||
if (this_size > BS)
|
|
||||||
this_size = BS;
|
|
||||||
else if (!this_size)
|
|
||||||
goto skip_read;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Queue up as many reads as we can
|
* Queue up as many reads as we can
|
||||||
*/
|
*/
|
||||||
while (read_left && !queue_read(infd, this_size, offset)) {
|
while (read_left) {
|
||||||
|
off_t this_size = read_left;
|
||||||
|
|
||||||
|
if (this_size > BS)
|
||||||
|
this_size = BS;
|
||||||
|
else if (!this_size)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (queue_read(infd, this_size, offset))
|
||||||
|
break;
|
||||||
|
|
||||||
read_left -= this_size;
|
read_left -= this_size;
|
||||||
offset += this_size;
|
offset += this_size;
|
||||||
reads++;
|
reads++;
|
||||||
}
|
}
|
||||||
|
|
||||||
skip_read:
|
|
||||||
ret = io_uring_submit(&in_ring);
|
ret = io_uring_submit(&in_ring);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "io_uring_submit: %s\n", strerror(-ret));
|
fprintf(stderr, "io_uring_submit: %s\n", strerror(-ret));
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
memset(&p, 0, sizeof(p));
|
memset(&p, 0, sizeof(p));
|
||||||
p.flags = IORING_SETUP_IOPOLL;
|
|
||||||
|
|
||||||
ret = io_uring_queue_init(QD, &p, &ring);
|
ret = io_uring_queue_init(QD, &p, &ring);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@@ -78,7 +77,7 @@ int main(int argc, char *argv[])
|
|||||||
done = 0;
|
done = 0;
|
||||||
pending = ret;
|
pending = ret;
|
||||||
for (i = 0; i < pending; i++) {
|
for (i = 0; i < pending; i++) {
|
||||||
ret = io_uring_get_completion(&ring, &cqe);
|
ret = io_uring_wait_completion(&ring, &cqe);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "io_uring_get_completion: %s\n", strerror(-ret));
|
fprintf(stderr, "io_uring_get_completion: %s\n", strerror(-ret));
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user