Page MenuHomeFreeBSD

nvme: Lock when processing an abort completion command.
ClosedPublic

Authored by imp on Jul 18 2024, 6:12 PM.
Tags
None
Referenced Files
F146624486: D46025.diff
Wed, Mar 4, 5:14 AM
F146617868: D46025.diff
Wed, Mar 4, 3:49 AM
Unknown Object (File)
Tue, Mar 3, 4:12 AM
Unknown Object (File)
Jan 27 2026, 9:50 PM
Unknown Object (File)
Jan 24 2026, 9:37 PM
Unknown Object (File)
Jan 24 2026, 5:14 PM
Unknown Object (File)
Jan 24 2026, 12:16 PM
Unknown Object (File)
Dec 5 2025, 9:16 PM
Subscribers

Details

Summary

When processing an abort completion command, we have to lock. But we
have to lock the qpair of the original transaction (not the abort we're
completing). We do this to avoid races with checking the completion id
to tr mapping array, as well as to manually complete it.

Note: we don't handle the completion status of 'Asked to abort too many
transactions at once.' That will be fixed on subsequent commits. Add a
note to that effect for now since it's a harder problem to solve.

Sponsored by: Netflix

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 58707
Build 55595: arc lint + arc unit