[bug report][regression] blktests nvme/029 failed on latest linux-block/for-next
Yi Zhang
yi.zhang at redhat.com
Thu Nov 21 21:38:11 PST 2024
On Thu, Nov 21, 2024 at 7:10 PM Nilay Shroff <nilay at linux.ibm.com> wrote:
>
>
>
> On 11/21/24 08:28, Yi Zhang wrote:
> > On Wed, Nov 20, 2024 at 10:07 PM Nilay Shroff <nilay at linux.ibm.com> wrote:
> >>
> >>
> >>
> >> On 11/19/24 16:34, Yi Zhang wrote:
> >>> Hello
> >>>
> >>> CKI recently reported the blktests nvme/029 failed[1] on the
> >>> linux-block/for-next, and bisect shows it was introduced from [2],
> >>> please help check it and let me know if you need any info/test for it, thanks.
> >>>
> >>> [1]
> >>> nvme/029 (tr=loop) (test userspace IO via nvme-cli read/write
> >>> interface) [failed]
> >>> runtime ... 1.568s
> >>> --- tests/nvme/029.out 2024-11-19 08:13:41.379272231 +0000
> >>> +++ /root/blktests/results/nodev_tr_loop/nvme/029.out.bad
> >>> 2024-11-19 10:55:13.615939542 +0000
> >>> @@ -1,2 +1,8 @@
> >>> Running nvme/029
> >>> +FAIL
> >>> +FAIL
> >>> +FAIL
> >>> +FAIL
> >>> +FAIL
> >>> +FAIL
> >>> ...
> >>> (Run 'diff -u tests/nvme/029.out
> >>> /root/blktests/results/nodev_tr_loop/nvme/029.out.bad' to see the
> >>> entire diff)
> >>> [2]
> >>> 64a51080eaba (HEAD) nvmet: implement id ns for nvm command set
> >>>
> >>>
> >>> --
> >>> Best Regards,
> >>> Yi Zhang
> >>>
> >>>
> >> I couldn't reproduce it even after running nvme/029 in a loop
> >> for multiple times. Are you following any specific steps to
> >> recreate it?
> >
> > From the reproduced data[1], seems it only reproduced on x86_64 and
> > aarch64, and from the 029.full[2], we can see the failure comes from
> > the "nvme write" cmd.
> > [1]
> > https://datawarehouse.cki-project.org/issue/3263
> > [2]
> > # cat results/nodev_tr_loop/nvme/029.full
> > Reference tag larger than allowed by PIF
> > NQN:blktests-subsystem-1 disconnected 1 controller(s)
> > disconnected 1 controller(s)
> >
> > I also attached the kernel config file in case you want to try it, thanks.
> >
> Thanks for the additional information!
> Now I could understand the issue and have a probable fix. If possible, can you try
> the below patch and check if it help resolve this issue?
Yes, the issue was fixed now.
>
> diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
> index 934b401fbc2f..7a8256ae3085 100644
> --- a/drivers/nvme/target/admin-cmd.c
> +++ b/drivers/nvme/target/admin-cmd.c
> @@ -901,12 +901,14 @@ static void nvmet_execute_identify_ctrl_nvm(struct nvmet_req *req)
> static void nvme_execute_identify_ns_nvm(struct nvmet_req *req)
> {
> u16 status;
> + void *zero_buf;
>
> status = nvmet_req_find_ns(req);
> if (status)
> goto out;
>
> - status = nvmet_copy_to_sgl(req, 0, ZERO_PAGE(0),
> + zero_buf = __va(page_to_pfn(ZERO_PAGE(0)) << PAGE_SHIFT);
> + status = nvmet_copy_to_sgl(req, 0, zero_buf,
> NVME_IDENTIFY_DATA_SIZE);
> out:
> nvmet_req_complete(req, status);
>
> Thanks,
> --Nilay
>
--
Best Regards,
Yi Zhang
More information about the Linux-nvme
mailing list