Scaling up partial evaluation for optimizing the Sun commercial RPC protocol

We report here a successful experiment in using partial evaluation on a realistic program, namely the Sun commercial RPC (Remote Procedure Call) protocol. The Sun RPC is implemented in a highly generic way that offers multiple opportunities of specialization.Our study also shows the incapacity of traditional binding-time analyses to treat real system programs. Our experiment has been made with Tempo, a partial evaluator for C programs targeted towards system software. Tempo's binding-time analysis had to be improved to integrate partially static data structures (interprocedurally), context sensitivity, use sensitivity and return sensitivity.The Sun RPC experiment files, including the specialized implementation, are publicly available upon request to the authors.

[1]  William I. Nowicki,et al.  NFS: Network File System Protocol specification , 1989, RFC.

[2]  Lars Ole Andersen Binding-time analysis and the taming of C pointers , 1993, PEPM '93.

[3]  Olivier Danvy,et al.  Tutorial notes on partial evaluation , 1993, POPL '93.

[4]  Jacques Noyé,et al.  A Uniform Approach for Compile-Time and Run-Time Specialization , 1996, Dagstuhl Seminar on Partial Evaluation.

[5]  Erik Ruf,et al.  Context-insensitive alias analysis reconsidered , 1995, PLDI '95.

[6]  Charles Consel,et al.  A general approach for run-time specialization and its application to C , 1996, POPL '96.

[7]  Charles Consel,et al.  Safe Operating System Specialization: the RPC Case Study , 1996 .

[8]  Trevor Blackwell,et al.  Fast decoding of tagged message formats , 1996, Proceedings of IEEE INFOCOM '96. Conference on Computer Communications.

[9]  Gilbert Cabillic,et al.  Stardust: An Environment for Parallel Programming on Networks of Heterogeneous Workstations , 1997, J. Parallel Distributed Comput..

[10]  Todd A. Proebsting,et al.  USC: A Universal Stub Compiler , 1994, SIGCOMM.

[11]  GhiyaRakesh,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994 .

[12]  Willy Zwaenepoel,et al.  The peregrine high‐performance RPC system , 1993, Softw. Pract. Exp..

[13]  David D. Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM '90.

[14]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[15]  Calton Pu,et al.  A Uniform and Automatic Approach to Copy Elimination in System Extensions via Program Specialization , 1996 .

[16]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[17]  Michael Burrows,et al.  Performance of Firefly RPC , 1989, SOSP '89.

[18]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[19]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.