Papers for 5/18

Mark Andrew SMITH (masmith@cs.ucsd.edu)
Thu, 18 May 2000 03:42:46 -0700 (PDT)

Lightweight Remote Procedure Call

LRPC is a response to the problem that RPC is too expensive in the common
case. It has been found that 90% of all RPC is actually to the same
machine. RPC is so general that it is unable to take advantage of this
fact. Further, examinations of the use of RPC yields that parameter lists
are often extremely small and simple. LRPC takes advantage of this
information to make the common case (across protection boundaries, same
machine) fast.

The handle to a procedure that the caller would like to call is created by
the kernel. In order to get a capablity to this interface, the callee must
trap to the kernel clerk and is given a Binding Object. Using this to call
the procedure saves on memory copy and other same-machine optimizations.

It is found that the common case is improved three fold while the uncommon
case (across machine calls) is not significantly worsened.

Active Messages

Current messaging systems on multiprocesser machines had very poor
performance. The reasons for this are twofold. First, for synchronous
messaging, blocking became very expensive. Secondly, for asynchronous
messaging, buffering became very expensive. The solution to these problems
according to Von Eicken et al. is the "Active Messaging" system. Active
messages are basically messages with an address for a message handler
taped onto the header. These handlers are supposed to be very small and
are run at interrupt time (immediately when they are received). Buffering
is completely eliminated although we still maintain the benefits of
asynchronous messaging. Performance measurements indicate the authors were
successful in increasing IPC speed significantly.

Mark A. Smith