Upload
quon-owens
View
35
Download
0
Embed Size (px)
DESCRIPTION
Lightweight Remote Procedure Call. BRIAN N. BERSHAD THOMAS E. ANDERSON EDWARD D. LAZOWSKA HENRY M. LEVY. Presented by Wen Sun. Overview. What is LRPC? Why LRPC? - PowerPoint PPT Presentation
Citation preview
Lightweight Remote Procedure Call
BRIAN N. BERSHAD
THOMAS E. ANDERSON
EDWARD D. LAZOWSKA
HENRY M. LEVY
Presented by Wen Sun
Overview
What is LRPC?
Why LRPC?
Design and Implementation of LRPC
The performance
What is RPC?
Cross-Machine
RPC
Cross-Domain
What is LRPC?
LRPC is a communication facility designed
& optimized for cross-domain communication in
the same machine.
Overview
What is LRPC?
Why LRPC?
Design and Implementation of LRPC
The performance
Why LRPC?
“In existing RPC systems, cross-domain calls
are implemented in terms of the facilities
required by cross-machine ones”
Cross-domain dominates !
Cross-domain is simple !
Most frequent case: less than 200 bytes
Cross-Domain RPC Performs bad !
Causes of Overhead in RPC Stub overhead the caller and receiver are on the same kind of architecture,
no need to marshal parameters and results into an intermediate, architecture independent representation
Simple stubs (simple model of control and data transfer)
Message buffer overhead (four copy operation) both are in the same physical memory space
LRPC only has one time copy from the client stub to A-stack both are in the same physical memory space
Message transfer No message transfer in LRPC ! A-stack ! Dispatch
Causes of Overhead in RPC
Access validation (validate send and return)
LRPC doesn’t validate the return Scheduling
Context switch Avoid context switch on multi-CPU by
using caching domain on idle processor
Overview
What is LRPC?
Why LRPC?
Design and Implementation of LRPC
The performance
Design and Implementation
Trap to Kernel
Execute procedureand copy results
Client
User stub
Server
Kernel
stub
Upcall Return (trap)
A A stack
Copy args
Borrowed from Rizal Arryadi’s powerpoint (winter 2005)
Binding
Server
client kernel
Clerkinterface
Server name +interface
Import call
noti
fyPD
L
Biding project (key) + A-stack list
Linkage record + A-stack
CallingClient
Client Stub
Kernel
Server Stub
Call Into
(1)Get an A-stack(2)Copy arguments into A-stack
(1)verifies binding, procedure ID, A-stack(2)locate the correct PD & linkage(3)ensures that no other thread using A-stack/linkage pair(4)Records caller’s return address and current stack pointer in the linkage(5)Pushes linkage onto top of stack of linkages kept in thread’s control block(6)Finds E-stack in the server’s domain(7)Updates thread’s user stack pointer to run off the new E-stack(8)Reloads processor’s Virtual Memory registers with those of the server domain
(1)Copy immutable args from A-stack to a new region(2)Call server procedure, server executes(3)Copy return value into A-stack
Trap (Binding Object, AS pointer, procedure ID)
Upcall into Trap back
Return
result
Overview
What is LRPC?
Why LRPC?
Design and Implementation of LRPC
The performance
The performance (I) Roughly three times faster than SRC RPC
The performance (II)
21 = 18 ( client stub) + 3 (server stub)
27 (binding validation + linkage management)
The performance (III)
lock contention !
Overview
What is LRPC?
Why LRPC?
Design and Implementation of LRPC
The performance