asterinas icon indicating copy to clipboard operation
asterinas copied to clipboard

Tracking I/O refactoring work based on `VmReader`/`VmWriter`

Open lucassong-mh opened this issue 6 months ago • 0 comments

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 on VmReader/VmWriter

lucassong-mh avatar Aug 23 '24 04:08 lucassong-mh