Generic virtual memory management for operating system kernels
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
HIP: hybrid interrupt-polling for the network interface
ACM SIGOPS Operating Systems Review
SSLACC: A Clustered SSL Accelerator
Proceedings of the 11th USENIX Security Symposium
Design Considerations for Distributed Caching on the Internet
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
Xen and the art of virtualization
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Firewall Design: Consistency, Completeness, and Compactness
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
Intel Virtualization Technology
Computer
ISPASS '03 Proceedings of the 2003 IEEE International Symposium on Performance Analysis of Systems and Software
A comparison of load balancing techniques for scalable Web servers
IEEE Network: The Magazine of Global Internetworking
Practice of parallelizing network applications on multi-core architectures
Proceedings of the 23rd international conference on Supercomputing
Hi-index | 0.00 |
The complexity of packet-processing applications continues to grow, with encryption, compression, and XML processing becoming common on packet-processing devices at the edge of enterprise and service provider networks. While performance remains a key differentiator for these devices, the complexity and rate of change in the supported applications has made general-purpose platforms an attractive alternative to ASICs and network processors. General-purpose platforms offer excellent programmability and a wealth of existing software, in the form of operating systems, libraries, and applications that can be used to build a packet-processing system; however, the performance of general-purpose operating systems is unacceptable for many environments. This has driven developers to either make derivative versions of existing operating systems or to use special-purpose operating systems with a less comprehensive and familiar library of existing software.As part of the Symerton project, we propose using virtualization to address these issues. We have designed a system that has a virtual machine dedicated to high-performance networking, and a virtual machine dedicated to hosting non-performance critical tasks in a general-purpose operating system. Using a proof-of-concept implementation, we show that the resulting system outperforms a general-purpose operating system by an average of 22% for a real networking application. We also discuss tradeoffs that will need to be considered in further development of systems using this design.