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
Unknown Object (File)
Sat, Sep 19, 11:51 PM
Unknown Object (File)
Sat, Sep 19, 3:22 PM
Unknown Object (File)
Thu, Sep 17, 1:15 PM
Unknown Object (File)
Tue, Sep 15, 12:45 AM
Unknown Object (File)
Sun, Sep 13, 8:08 AM
Unknown Object (File)
Sat, Sep 12, 4:28 AM
Unknown Object (File)
Fri, Sep 11, 12:51 AM
Unknown Object (File)
Thu, Sep 10, 11:39 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 Not Applicable
Unit
Tests Not Applicable

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?