This repository was archived by the owner on Mar 2, 2022. It is now read-only.

Description
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:
- Greatly ease testing. No more kernel panic, no more.
- 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.