Page MenuHomeFreeBSD

nvme: limit namespace character-device I/O size
ClosedPublic

Authored by seuros on Mon, Aug 24, 6:19 PM.
Tags
None
Referenced Files
F170544679: D59152.id.diff
Sat, Sep 5, 8:20 AM
F170515705: D59152.id184920.diff
Sat, Sep 5, 4:49 AM
F170506478: D59152.id.diff
Sat, Sep 5, 3:46 AM
F170443564: D59152.id184988.diff
Fri, Sep 4, 8:45 PM
Unknown Object (File)
Fri, Sep 4, 5:43 AM
Unknown Object (File)
Fri, Sep 4, 2:15 AM
Unknown Object (File)
Thu, Sep 3, 9:30 PM
Unknown Object (File)
Thu, Sep 3, 5:20 PM
Subscribers

Details

Summary

The namespace character device does not initialize si_iosize_max, so
physio falls back to DFLTPHYS and can produce a bio larger than the
qpair payload DMA tag on a controller whose maximum transfer size is
below 64KB. Such a bio fails DMA mapping and is never submitted.

Approved by: ngie (co-mentor)
MFC after: 1 week

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 76111
Build 72994: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Mon, Aug 24, 10:27 PM
This revision now requires review to proceed.Tue, Aug 25, 6:34 AM
ngie added a subscriber: ngie.

Could this be reproed using nvmecontrol reset? How can one confirm that the new value is being set properly? Asking as part of a "brain-storm" for a regression test of some kind.
Approved by: ngie (co-mentor)

This revision is now accepted and ready to land.Sat, Aug 29, 2:02 AM
sys/dev/nvme/nvme_ns.c
606

A comment here about why we need to update this after a reset would be nice. Why would it change?