Page MenuHomeFreeBSD

nvme: Timeout expired transactions
ClosedPublic

Authored by imp on Oct 10 2022, 2:15 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Dec 9, 1:17 PM
Unknown Object (File)
Mon, Dec 9, 5:35 AM
Unknown Object (File)
Mon, Nov 25, 8:03 AM
Unknown Object (File)
Oct 18 2024, 12:53 PM
Unknown Object (File)
Oct 18 2024, 12:53 PM
Unknown Object (File)
Oct 18 2024, 12:53 PM
Unknown Object (File)
Oct 18 2024, 12:53 PM
Unknown Object (File)
Oct 18 2024, 12:53 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.