Page MenuHomeFreeBSD

nvme: Timeout expired transactions
ClosedPublic

Authored by imp on Oct 10 2022, 2:15 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 23, 1:50 PM
Unknown Object (File)
Mar 26 2024, 7:18 AM
Unknown Object (File)
Mar 13 2024, 1:56 AM
Unknown Object (File)
Feb 4 2024, 4:51 PM
Unknown Object (File)
Jan 22 2024, 2:33 AM
Unknown Object (File)
Dec 24 2023, 3:21 PM
Unknown Object (File)
Dec 20 2023, 8:13 AM
Unknown Object (File)
Dec 15 2023, 1:11 PM

Details

Summary

When we went to having a shared timeout routine, failing the timed-out
transaction code was inadvertantly dropped. Reinstate it.

Fixes: 502dc84a8b670
Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

imp requested review of this revision.Oct 10 2022, 2:15 AM

include completion routine here instead of D36922

sys/dev/nvme/nvme_qpair.c
963

This change removes the idle check (an optimization?) and some associated logic. Was that intended? This code might be equivalent, but I'm having trouble working out whether or not that is the case.

sys/dev/nvme/nvme_qpair.c
963

So, yes. I changed idle a little. Part of it is that I drop the 'idle' short-circuit. IIRC, there were cases where we'd get back to the top of the loop and have trackers added, but ignore them and thing we're fine (or vice versa). I believe I refine things further later on, so this is OK.

jhb added inline comments.
sys/dev/nvme/nvme_qpair.c
1016

Maybe a blank line before this comment for style?

This revision is now accepted and ready to land.Aug 14 2023, 8:08 PM
sys/dev/nvme/nvme_qpair.c
1016

Since the next in the patch series delete it, I'm going to not bother.
And they are separate patches since I developed them one after the other and the latest one has a lot less soak time so I wanted this to be a good roll back point if there's something unknown wrong with it.

This revision was automatically updated to reflect the committed changes.