* [PATCH liburing 0/2] passthrough test fix and cleanup
[not found] <CGME20221206123005epcas5p474a1374f850c47f2c9af5ef8c8cc6509@epcas5p4.samsung.com>
@ 2022-12-06 12:18 ` Kanchan Joshi
[not found] ` <CGME20221206123009epcas5p4d65eca3320f9845e190fc425a06799a6@epcas5p4.samsung.com>
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Kanchan Joshi @ 2022-12-06 12:18 UTC (permalink / raw)
To: axboe; +Cc: io-uring, Kanchan Joshi
Hi Jens,
This series does a fix in test/io_uring_passthrough.c and a minor
cleanup too.
Please take a look.
Kanchan Joshi (2):
test/io_uring_passthrough: fix iopoll test
test/io_uring_passthrough: cleanup invalid submission test
test/io_uring_passthrough.c | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH liburing 1/2] test/io_uring_passthrough: fix iopoll test
[not found] ` <CGME20221206123009epcas5p4d65eca3320f9845e190fc425a06799a6@epcas5p4.samsung.com>
@ 2022-12-06 12:18 ` Kanchan Joshi
0 siblings, 0 replies; 4+ messages in thread
From: Kanchan Joshi @ 2022-12-06 12:18 UTC (permalink / raw)
To: axboe; +Cc: io-uring, Kanchan Joshi
iopoll test is broken as it does not initialize the command/sqe properly
before submission.
Add the necessary initialization to set this right.
Signed-off-by: Kanchan Joshi <[email protected]>
---
test/io_uring_passthrough.c | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c
index 9c71586..b58feae 100644
--- a/test/io_uring_passthrough.c
+++ b/test/io_uring_passthrough.c
@@ -350,6 +350,8 @@ static int test_io_uring_submit_enters(const char *file)
int fd, i, ret, ring_flags, open_flags;
unsigned head;
struct io_uring_cqe *cqe;
+ struct nvme_uring_cmd *cmd;
+ struct io_uring_sqe *sqe;
ring_flags = IORING_SETUP_IOPOLL;
ring_flags |= IORING_SETUP_SQE128;
@@ -369,12 +371,28 @@ static int test_io_uring_submit_enters(const char *file)
}
for (i = 0; i < BUFFERS; i++) {
- struct io_uring_sqe *sqe;
off_t offset = BS * (rand() % BUFFERS);
+ __u64 slba;
+ __u32 nlb;
sqe = io_uring_get_sqe(&ring);
- io_uring_prep_writev(sqe, fd, &vecs[i], 1, offset);
- sqe->user_data = 1;
+ io_uring_prep_readv(sqe, fd, &vecs[i], 1, offset);
+ sqe->user_data = i;
+ sqe->opcode = IORING_OP_URING_CMD;
+ sqe->cmd_op = NVME_URING_CMD_IO;
+ cmd = (struct nvme_uring_cmd *)sqe->cmd;
+ memset(cmd, 0, sizeof(struct nvme_uring_cmd));
+
+ slba = offset >> lba_shift;
+ nlb = (BS >> lba_shift) - 1;
+
+ cmd->opcode = nvme_cmd_read;
+ cmd->cdw10 = slba & 0xffffffff;
+ cmd->cdw11 = slba >> 32;
+ cmd->cdw12 = nlb;
+ cmd->addr = (__u64)(uintptr_t)&vecs[i];
+ cmd->data_len = 1;
+ cmd->nsid = nsid;
}
/* submit manually to avoid adding IORING_ENTER_GETEVENTS */
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH liburing 2/2] test/io_uring_passthrough: cleanup invalid submission test
[not found] ` <CGME20221206123012epcas5p33de3600bbc6effa8e2a08f748cb0eee4@epcas5p3.samsung.com>
@ 2022-12-06 12:18 ` Kanchan Joshi
0 siblings, 0 replies; 4+ messages in thread
From: Kanchan Joshi @ 2022-12-06 12:18 UTC (permalink / raw)
To: axboe; +Cc: io-uring, Kanchan Joshi
Just do away with setting IOPOLL as this is not necessary for the test.
Signed-off-by: Kanchan Joshi <[email protected]>
---
test/io_uring_passthrough.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c
index b58feae..7efdba1 100644
--- a/test/io_uring_passthrough.c
+++ b/test/io_uring_passthrough.c
@@ -286,8 +286,7 @@ static int test_invalid_passthru_submit(const char *file)
struct io_uring_sqe *sqe;
struct nvme_uring_cmd *cmd;
- ring_flags = IORING_SETUP_IOPOLL | IORING_SETUP_SQE128;
- ring_flags |= IORING_SETUP_CQE32;
+ ring_flags = IORING_SETUP_CQE32 | IORING_SETUP_SQE128;
ret = t_create_ring(1, &ring, ring_flags);
if (ret != T_SETUP_OK) {
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH liburing 0/2] passthrough test fix and cleanup
2022-12-06 12:18 ` [PATCH liburing 0/2] passthrough test fix and cleanup Kanchan Joshi
[not found] ` <CGME20221206123009epcas5p4d65eca3320f9845e190fc425a06799a6@epcas5p4.samsung.com>
[not found] ` <CGME20221206123012epcas5p33de3600bbc6effa8e2a08f748cb0eee4@epcas5p3.samsung.com>
@ 2022-12-06 17:19 ` Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2022-12-06 17:19 UTC (permalink / raw)
To: Kanchan Joshi; +Cc: io-uring
On Tue, 06 Dec 2022 17:48:29 +0530, Kanchan Joshi wrote:
> This series does a fix in test/io_uring_passthrough.c and a minor
> cleanup too.
> Please take a look.
>
> Kanchan Joshi (2):
> test/io_uring_passthrough: fix iopoll test
> test/io_uring_passthrough: cleanup invalid submission test
>
> [...]
Applied, thanks!
[1/2] test/io_uring_passthrough: fix iopoll test
commit: 6e86d14a0a88e41c442a4a9c37effc55ac00d2ff
[2/2] test/io_uring_passthrough: cleanup invalid submission test
commit: 29ec9d9fd3262034e4dce32cb75c0faaad158d1c
Best regards,
--
Jens Axboe
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-12-06 17:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20221206123005epcas5p474a1374f850c47f2c9af5ef8c8cc6509@epcas5p4.samsung.com>
2022-12-06 12:18 ` [PATCH liburing 0/2] passthrough test fix and cleanup Kanchan Joshi
[not found] ` <CGME20221206123009epcas5p4d65eca3320f9845e190fc425a06799a6@epcas5p4.samsung.com>
2022-12-06 12:18 ` [PATCH liburing 1/2] test/io_uring_passthrough: fix iopoll test Kanchan Joshi
[not found] ` <CGME20221206123012epcas5p33de3600bbc6effa8e2a08f748cb0eee4@epcas5p3.samsung.com>
2022-12-06 12:18 ` [PATCH liburing 2/2] test/io_uring_passthrough: cleanup invalid submission test Kanchan Joshi
2022-12-06 17:19 ` [PATCH liburing 0/2] passthrough test fix and cleanup Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox