This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Automatic Specialization of Protocol Stacks in Operating System Kernels Sapan Bhatia * Charles Consel * Anne-Franc ¸oise Le Meur * * LaBRI/INRIA ENSEiRB 1 Ave du Dr. Albert Schweitzer 33400 Talence France Calton Pu † † College of Computing Georgia Institute of Technology Atlanta, Georgia 30332 Abstract — Fast and optimized protocol stacks play a major role in the performance of network services. This role is especially important in embedded class systems, where performance metrics such as data throughput tend to be limited by the CPU. It is common on such systems, to have protocol stacks that are optimized by hand for better performance and smaller code footprint. In this paper, we propose a strategy to automate this process. Our approach uses program specialization , and enables appli- cations using the network to request specialized code based on the current usage scenario. The specialized code is generated dy- namically and loaded in the kernel to be used by the application. We have successfully applied our approach to the TCP/IP implementation in the Linux kernel and used the optimized protocol stack in existing applications. These applications were minimally modified to request the specialization of code based on the current usage context, and to use the specialized code generated instead of its generic version. Specialization can be performed locally, or deferred to a remote specialization server using a novel mechanism  Experiments conducted on three platforms show that the specialized code runs about 25% faster and its size reduces by up to 20 times. The throughput of the protocol stack improves by up to 21%. I. I NTRODUCTION The goal of efficient data processing in protocol stacks is well-established in the networking community , , , , . This is becoming increasingly more important with embedded devices becoming more and more networked, as throughput on such systems is invariably limited by the processing capabilities of the CPU. Protocol stacks for embedded devices are thus highly cus- tomized with a view of their target applications. The cus- tomization process aims to eliminate unnecessary functionali- ties and instantiate the remaining ones with respect to parame- ters of the device usage context. This process typically consists of propagating configuration values, optimizing away condi- tionals depending on configuration values, etc. These hand- optimized protocol stacks not only save on processing steps, but also have smaller footprints, better suited to embedded systems . Such strategy, however, raises a conflict between thorough specialization, to obtain significant improvements, and conservative specialization, to preserve the usage scope of the system. Indeed, many usage parameters become known at run-time, as the system is in use. As such, this situation raises the need for a tool that can be used to exploit them systematically....
View Full Document
- Fall '08
- Transmission Control Protocol, protocol stack