What is the point of LRPC? Why would anyone want to make Remote Procedure Calls to the same machine?

From what I understand about RPC (Remote Procedure Calls), is that they provide a way to send function calls, invocations, etc to remote machines. The obvious advantage of this is that you can have a single program that runs on a cluster of machines and can handle more requests, more data, on so on.

But I’m puzzled by LRPC – Lightweight RPC. Apparently this stuff exists to speed up RPC on the same machine. As written in the paper I linked to:

Lightweight Remote Procedure Call (LRPC) is a communication facility designed and optimized for communication between protection domains on the same machine. In contemporary small-kernel operating systems, existing RPC systems incur an unnecessarily high cost when used for the type of communication that predominates-between protection domains on the same machine. This cost leads system designers to coalesce weakly related subsystems into the same protection domain, trading safety for performance. By reducing the overhead of same-machine communication, LRPC encourages both safety and performance.

My question is: what is the point of RPC if you’re running everything o nthe same computer. The R stands for REMOTE. If you’re not gonna be Remote, then just call it LPC. What am I missing?

Leave a Comment