HomeFreeBSD

Use unmapped (M_NOMAP) mbufs for zero-copy AIO writes via TOE.

Description

Use unmapped (M_NOMAP) mbufs for zero-copy AIO writes via TOE.

Previously the TOE code used its own custom unmapped mbufs via
EXT_FLAG_VENDOR1. The old version always wired the entire AIO request
buffer first for the duration of the AIO operation and constructed
multiple mbufs which used the wired buffer as an external buffer.

The new version determines how much room is available in the socket
buffer and only wires the pages needed for the available room building
chains of M_NOMAP mbufs. This means that a large AIO write will now
limit the amount of wired memory it uses to the size of the socket
buffer.

Reviewed by: gallatin, np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D20839

Details

Committed
jhbJul 3 2019, 4:06 PM
Reviewer
gallatin
Differential Revision
D20839: Use unmapped (M_NOMAP) mbufs for zero-copy AIO writes via TOE.
Parents
rS349648: MFC r349366:
Branches
Unknown
Tags
Unknown