The results motivate future work to close the gap with the kernel-mode approaches described in this paper. First, the software interrupt kernel-mode approach suffers from the problems described by [24]. Second, even the thread-based kernel-mode approach has limited applicability beyond simple caching. While it's possible to embed application-specific code in the kernel, the approach is awkward and leads to a paradigm where the benefits of address spaces are lost.
Future work will focus on support for user-mode servers to achieve kernel-mode performance without implementing application-specific code in the kernel. In particular, the performance advantages of a kernel-mode approach might be amortized by batching multiple layer 7 requests before indicating them to a user-mode server. Likewise, response processing might also be aggregated over multiple responses before indicating those responses back to the kernel. Future work will explore batching techniques to amortize user-mode overhead using a kernel-mode request/response engine and cache.