The Community for Technology Leaders
29th Annual IEEE International Conference on Local Computer Networks (2004)
Tampa, Florida, USA
Nov. 16, 2004 to Nov. 18, 2004
ISSN: 0742-1303
ISBN: 0-7695-2260-2
pp: 152-159
Sapan Bhatia , LaBRI/INRIA, Talence, France
Charles Consel , LaBRI/INRIA, Talence, France
Anne-Fran?oise Le Meur , Diku, University of Copenhagen, Denmark
Calton Pu , Georgia Institute of Technology, Atlanta, USA
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.<div></div> Our approach uses program specialization, and enables applications using the network to request specialized code based on the current usage scenario. The specialized code is generated dynamically 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.<div></div> 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%.
INDEX TERMS
null
CITATION

A. Le Meur, S. Bhatia, C. Pu and C. Consel, "Automatic Specialization of Protocol Stacks," 29th Annual IEEE International Conference on Local Computer Networks(LCN), Tampa, Florida, USA, 2004, pp. 152-159.
doi:10.1109/LCN.2004.28
80 ms
(Ver 3.3 (11022016))