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
F171200731: D59152.id184920.diff
Wed, Sep 9, 11:38 AM
F171158572: D59152.diff
Wed, Sep 9, 2:43 AM
Unknown Object (File)
Tue, Sep 8, 12:58 AM
Unknown Object (File)
Mon, Sep 7, 2:53 PM
Unknown Object (File)
Mon, Sep 7, 6:04 AM
Unknown Object (File)
Sun, Sep 6, 11:28 PM
Unknown Object (File)
Sun, Sep 6, 10:59 AM
Unknown Object (File)
Sun, Sep 6, 8:44 AM
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 76057
Build 72940: 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?