HomeFreeBSD

MFC r345656: Do not map small IOCTL buffers to KVA, but copy.

Description

MFC r345656: Do not map small IOCTL buffers to KVA, but copy.

CAM IOCTL interfaces traditionally mapped user-space data buffers to KVA.
It was nice originally, but now it takes too much to handle respective
TLB shootdowns, while small kernel memory allocations up to 64KB backed
by UMA and accompanied by copyin()/copyout() can be much cheaper.

For large buffers mapping still may have sense, and unmapped I/O would
be even better, but the last unfortunately is more tricky, since unmapped
I/O API is too specific to struct bio now.

Sponsored by: iXsystems, Inc.

Details

Provenance
mavAuthored on
Parents
rS346757: MFC r345656: Do not map small IOCTL buffers to KVA, but copy.
Branches
Unknown
Tags
Unknown