This allows slightly more efficient opcode testing in-kernel. It is
transparent to userland, except to applications that sneakily submit
aio fsync or aio mlock operations via lio_listio, which has never been
documented, requires the use of deliberately undefined constants
(LIO_SYNC and LIO_MLOCK), and is arguably a bug.
Details
Details
- Reviewers
jhb - Commits
- rG2247f4894174: aio: micro-optimize the lio_opcode assignments
existing AIO test suite
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Looks OK to me. I suppose we could also use bitmask style for LIO_SYNC and LIO_DATA_ONLY?
Comment Actions
This seems ok to me, though it's not clear if the optimizations really buy anything in perf compared to the (minimal) obfuscation when reading.
I would very much like to see missing validation of opcodes to lio_listio added though, perhaps as a prior commit before this?