asterinas
asterinas copied to clipboard
Tracking I/O refactoring work based on `VmReader`/`VmWriter`
Description
Currently all the io APIs in the vfs layer is equipped with VmReader
/VmWriter
, which can benefit us from interacting buffers from the user space directly without any redundant memory copies. While deep down some of our subsystems, the infrastructures
that we utilizes for now still can't satisfy our need of directly reading/writing user buffers.
So more ongoing refactoring work are required, listed as below.
Tasks
- [x] Refactor all the io APIs in the vfs layer based on
VmReader
/VmWriter
- https://github.com/asterinas/asterinas/pull/1156
- [x] Refactor pipe: introduce a new ring buffer that can read/write from
VmReader
/VmWriter
- https://github.com/asterinas/asterinas/issues/1221
- [ ] Refactor the network subsystem: may require modifying smoltcp
- [ ] Correct the behaviors of
readv
/writev
and introduce vectored io APIs based onVmReader
/VmWriter