WukLab/LegoOS

Port Storage/Global monitor to user level

lastweek opened this issue · 1 comments

The reason they are now in kernel is because our network layer is in kernel (LITE, SOSP'17). But, there is really NO NEED to have such a kernel-level network stack. Also, LITE's original authors (Shin-Yeh and Yiying) both feel the need to have a user-level RDMA stack.

We only need a good RPC framework. And there are many ways to build it: 1) FaRM/LITE ring buffer, 2) HERD, 3) eRPC, and so on. They favor either latency or throughput. The original ring buffer design is sufficient now. Which design to use is still to be decided.

Having a user-level storage/global monitors can also:

  1. Greatly ease testing. No more kernel panic, no more.
  2. Storage code can be simplified. No more awkward workaround, no more.

Anyhow, this is a pure engineering effort. I'm not sure when we could finish it.

Being in kernel loses the joy of using some open-source user space stuff such as coroutine. I especially like the Arachne, OSDI'18 work. They have some good insights in building the library. We should read that again when we start.